我不会让你知道细节,但是我需要传递一个命令给一个没有空格的文件,每个空格都认为下一个文本是一个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
这意味着空间不会被剧本捕捉到