运行没有空格的命令

我不会让你知道细节,但是我需要传递一个命令给一个没有空格的文件,每个空格都认为下一个文本是一个variables,而不是这种情况。 我需要能够创build一个命令与空间以外的其他字符或使用hex字符来克服这一点。 不幸的是,我完全locking使用这种方法,因为这个文件存在于1000个设备上,我需要在每个设备上手动更改文件,如果我可以解决这个问题,那么这对我来说是最好的解决scheme。

有没有人有任何想法,如果这是可能的?

编辑嗨大家了解一些更多的信息,可以说我有文件test.sh,它有一个叫做echo_var的函数,如果我使用命令的例子

test.sh echo_var helloworld 

该函数将简单地回声helloworld

如果我说使用命令

 test.sh echo_var hello world 

只有hello得到回应,因为它认为“hello world”是两个string,只确认第一个,函数将每个分隔的string作为一个variables,只使用第一个variables,即hello。 我需要让你好世界一个variables

我想运行的命令是重新启动服务即

 test.sh echo_var hello&&service apache2 restart 

所以你好都会被回显,服务重新启动。 但是在空间服务之后,命令被切断。

这里是我必须与之交互的文件(test.sh),这是在1000个设备上,我需要使用它:

 case "$1" in echo_var) echo "$2" ;; 

在你的string周围使用双引号

下面一个应该工作正常

 test.sh echo_var "hello world" 
 #!/bin/sh echo_var="hello world" echo $echo_var 

你在找这样的东西吗?

 #!/bin/sh echo_var="Apache Server Restarted" echo $echo_var >> /var/log/ApacheRestart.log service apache2 restart 

所以像这样的东西可能会帮助你。

我的解决scheme如下:

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

这意味着空间不会被剧本捕捉到