我有一个名为cmd的文件,其中包含一个unix命令列表,如下所示:
hostname
pwd
ls /tmp
cat /etc/hostname
ls -la
ps -ef | grep java
cat cmd
Run Code Online (Sandbox Code Playgroud)
我有另一个脚本执行cmd中的命令:
IFS=$'\n'
clear
for cmds in `cat cmd`
do
if [ $cmds ] ; then
$cmds;
echo "****************************";
fi
done
Run Code Online (Sandbox Code Playgroud)
问题是没有空格的cmd中的命令运行正常,但脚本没有正确解释带空格的命令.以下是输出:
patrick-laptop
****************************
/home/patrick/bashFiles
****************************
./prog.sh: line 6: ls /tmp: No such file or directory
****************************
./prog.sh: line 6: cat /etc/hostname: No such file or directory
****************************
./prog.sh: line 6: ls -la: command not found
****************************
./prog.sh: line 6: ps -ef | grep java: command not found
****************************
./prog.sh: line 6: cat cmd: command not found
****************************
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?