我正在尝试编写一个 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 扩展会更好($var 与 "$var")。
而且,我假设您确实想要目录内的文件列表,但目录名只是目录本身(如/home/user/)。如果是这样,您将需要:
for file in "$directoryname"/*
关于python - 带有来自终端的参数的 bash 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33381405/