У меня есть текстовый файл следующего формата:
name1 path/to/some/directory
name2 path/to/some/other/directory
name3 path/to/some/directory
name4 path/to/some/other/directory
...
Вот код, который я написал для чтения этого файла построчно:
NUM=1
for line in $(cat /path/to/my/file.txt); do
if [ $((NUM%2)) -eq 1 ]
then
name= $line #this line does not work
echo $line #while this line works just fine
else
sudo tar -cf /desired/path/$name.tar $line
fi
NUM=$((NUM+1))
done
Этот код фактически читает файл слово за словом, и он чередует then и else в инструкции if. Как только он присваивает прочитанное значение имени переменной (then внутри if), он использует эту переменную в команде, которая выполняется в else em > часть if. (Вот как я ожидаю, что это сработает.)
Возникающая проблема заключается в том, что назначение переменной в then части , если кажется, не работает, он видит слово, которое он только что прочитал как команду, и не присваивает его значение Переменная. Я попытался повторить его, и он работает нормально.
Почему name= $line
присвоение переменных не работает?
Спасибо за любые предложения, комментарии или ответы.