Bash脚本没有';无法获取i';我给了

Bash脚本没有';无法获取i';我给了,bash,Bash,我有一个简单的bash脚本,可以在服务器上以命令的形式运行参数,为此,我需要在另一台服务器上以字符串的形式创建所需的命令,并尝试远程执行它 PROFILE=/coremedia/home/picroot/.profile source $PROFILE "$1" 我要发送到脚本的参数: /coremedia/pic cms tools/bin/cm publish-u admin-p admin-t”/Config/Static text/PDF text/PDF text/PDF.eudat

我有一个简单的bash脚本,可以在服务器上以命令的形式运行参数,为此,我需要在另一台服务器上以字符串的形式创建所需的命令,并尝试远程执行它

PROFILE=/coremedia/home/picroot/.profile
source $PROFILE
"$1"
我要发送到脚本的参数:

/coremedia/pic cms tools/bin/cm publish-u admin-p admin-t”/Config/Static text/PDF text/PDF text/PDF.eudatasheet.ocenergyconscovlone”“/Config/Static text/PDF text/PDF.eudatasheet.ocenergyconforcedalone”

但它找不到必要的命令,当我们到达以下位置时,它被停止:

/coremedia/pic-cms-tools/bin/cm
我已经尝试了很多配置来处理字符串,但我仍然无法找到解决方案,显然我缺少了一个关键的小东西


如有任何帮助,将不胜感激,敬请提前感谢

eval$1
替换为
eval“$@”
以计算所有参数,而不仅仅是第一个参数。

除非您确定字符串中的内容,即它是一个固定值,否则不要使用eval。我会重新表述:如果您确定字符串内容,则使用eval(在OP的示例中似乎就是这样)。您可以这样做:
cmd=$1;转移$cmd“$@”
。这将使用第一个参数作为命令项运行您的参数。您是否使用正确引用的多个参数调用此脚本?如果您是,那么您根本不需要
eval
,只需使用
“$@”
作为命令(可能是
exec“$@”
来替换当前的shell)。非常感谢您的回答,我不知怎么错过了这个小细节……你好,Rosca,请检查我的编辑是否可以为您完成?你好!尝试使用反斜杠转义单引号
/coremedia/pic cms tools/bin/cm publish-u admin-p admin-t\'/Config/Static text/PDF Texts/PDF.eudatasheet.ocenergyconconvolone\''\'/Config/Static text/PDF text/PDF Texts/PDF.eudatasheet.ocenergyconforcedalone\'
你搞错了我想,字符串上需要单引号才能成功运行命令,但是我从远程发送同样的东西,它删除了命令中的引号。@Hayra:老实说,远程运行脚本只是另一个问题,你应该提出另一个问题!我做了一些实验,你是对的,引文丢失了。这个解决方案并不像我最初想的那么简单!