я наткнулся на следующую проблему: Я пишу Баш скрипт для Linux, который делает следующее:BASH: Strip символ новой строки из строки (строки чтения)
- Чтение строки из файла
- Газа
\n
символ с конца строки просто читать - Выполните команду, которая находится в там
Пример: commands_empty.txt,
ls
ls -l
ls -ltra
ps as
Выполнение файла Баш должны получить первую строку, и выполнить его, но в то время как \n
настоящее, оболочка просто выводит «команда не найдена: LS» Та часть сценария выглядит следующим образом
read line
if [ -n "$line" ]; then #if not empty line
#myline=`echo -n $line | tr -d '\n'`
#myline=`echo -e $line | sed ':start /^.*$/N;s/\n//g; t start'`
myline=`echo -n $line | tr -d "\n"`
$myline #execute it
cat $fname | tail -n+2 > $fname.txt
mv $fname.txt $fname
fi
Прокомментировал, что у вас есть вещи, которые я пробовал, прежде чем спросить. Любые решения? Я разбив себе голову за последние пару часов над этим ...
вы просто пытались '$ line' в одиночку? – knittl
Конечно, да. Но он говорит: «команда не найдена: ls » –
Все, что вам нужно: 'myline =" $ (echo -n "$ line") "' (с backquotes вместо '$()' если вы хотите) – jnylen