空间导致命令无法完成

时间:2015-01-08 13:50:29

标签: linux bash shell command-line

我的设备有一些内置脚本,允许有限的操作。我需要尝试使用脚本在设备上发出第二个命令。每个设备都有相同的脚本,所以如果我修改脚本,我需要在每个不切实际的框上执行此操作。

脚本(create.sh)如下所示:

create_directory)
        mkdir "$2"
        ;;

因此,如果我在shell中执行以下操作

create.sh create_directory test

我得到一个名为test的目录。我需要做的是创建目录并重新启动服务,例如:

create.sh create_directory test&&service apache2 restart

我遇到的问题是服务后的空间会破坏命令,因为它认为每个空格都是传递给脚本的参数之间的中断。这是我可以与设备连接的唯一方式,因此这是我实现我需要的唯一方式。

无论如何要实现所提到的第二个命令,或者是否有潜在的解决方法,例如\ 20例如对于空间十六进制是我理解的,因此空格字符的替代可能对我有用。

2 个答案:

答案 0 :(得分:2)

编写一个调用create.sh的脚本,然后重新启动apache2。

#!/usr/bin/env bash

create.sh create_directory test
service apache2 restart

如果您将脚本保存为myscript.sh,然后

chmod 755 myscript.sh

然后您可以将其称为

./myscript.sh

它会将你的两个命令合并为一个,是的,你需要将这个新命令复制到你的每个设备中#34;。

答案 1 :(得分:0)

我的解决方案如下:

./test.sh echo_var test1;what="service restart apache2";$what

这意味着脚本永远不会捕获空格