Я хочу использовать Shell, чтобы запустить мой скрипт Python и использовать переменную от того, чтобы цикл назвал мой выходной файл
for i in 1 2 3 4 5
do
setsid python main.py 1>data/$i$_logfile.txt 2>&1
done
Но я добрался 1.txt
нет 1_logfile.txt
. Как я могу сделать это успешно?
Поскольку _
допустимый символ для имени переменной, необходимо использовать ${varname}
синтаксис, чтобы позволить оболочке знать конец имени переменной. Иначе Вы имеете $i
и $_logfile
как переменные, но последний пусто.
Синтаксис $i$
не существует.
Использование:
setsid python main.py 1>data/${i}_logfile.txt 2>&1
Обратите внимание, что $variable является на самом деле упрощенной формой $ {переменная}. В контекстах, где синтаксис $variable вызывает ошибку, может работать более длинная форма. (через)