我正在尝试编写一个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脚本我是个新手。
答案 0 :(得分:3)
更改为:
#!/bin/bash
directoryname="$1"
programname="$2"
newfilename="$3"
for file in $directoryname
do
python3 "$programname" "$file" >> "$newfilename"
done
=周围没有空格。 var在其名称前面用$标记。一般来说,如果引用var扩展更好($ var vs“$ var”)。
而且,我假设您确实需要目录中的文件列表,但目录名只是目录本身(作为/ home / user /)。如果是这样,您将需要:
for file in "$directoryname"/*
答案 1 :(得分:0)
=
与变量名称和值之间的不必要空格导致问题,删除空格并重试。将工作。 :)
#!/bin/bash
directoryname="$1"
programname="$2"
newfilename="$3"
for file in directoryname
do
python3 programname "$file" >> newfilename
done