相关疑难解决方法(0)

在bash中执行包含空格的命令

我有一个名为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: …
Run Code Online (Sandbox Code Playgroud)

bash shell

11
推荐指数
1
解决办法
9207
查看次数

标签 统计

bash ×1

shell ×1