我正在尝试编写一个bash脚本来运行一个python程序,该程序以文件名并在终端中打印值。我的bash程序应从终端中获取三个参数。第一个是python程序名,第二个是文件夹名,第三个是我要存储python程序输出的文件名。
#!/bin/bash
directoryname = "$1"
programname = "$2"
newfilename ="$3"
for file in directoryname
do
python3 programname "$file" >> newfilename
done
并且我正在执行程序,如下所示:
./myscript.sh mypython.py / home / data myfile.txt
但它给出错误为:
./myscript.sh: line 2: directoryname: command not found
./myscript.sh: line 3: programname: command not found
./myscript.sh: line 4: newfilename: command not found
请帮我解决这个问题。我对bash脚本还很陌生。
最佳答案
改成:
#!/bin/bash
directoryname="$1"
programname="$2"
newfilename="$3"
for file in $directoryname
do
python3 "$programname" "$file" >> "$newfilename"
done
=周围没有空格。变量名称前用$标记。通常,用引号将var扩展更好($ var vs“ $ var”)。
而且,我假设您确实希望目录中包含文件列表,但是directoryname仅是目录本身(如/ home / user /)。如果是这样,您将需要:
for file in "$directoryname"/*