我正在尝试编写一个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"/*

10-06 05:10