无法将参数传递给bash脚本中的perl脚本

无法将参数传递给bash脚本中的perl脚本,bash,Bash,我想使用bash脚本“tablecheck.sh”中的位置参数将参数传递给perl脚本。我正在使用别名“tablecheck”调用“tablecheck.sh” #!/bin/bash /scripts/tables.pl /var/lib/mysql/$1/ /var/mysql/$1/mysql.sock > /tmp/chktables_$1 2>&1 & Perl脚本本身运行良好。但当我执行“tablecheck MySQLinstance”时,1美元仍然是

我想使用bash脚本“tablecheck.sh”中的位置参数将参数传递给perl脚本。我正在使用别名“tablecheck”调用“tablecheck.sh”

#!/bin/bash
/scripts/tables.pl /var/lib/mysql/$1/ /var/mysql/$1/mysql.sock > /tmp/chktables_$1 2>&1 &
Perl脚本本身运行良好。但当我执行“tablecheck MySQLinstance”时,1美元仍然是1美元。它不会被实例替换。因此,我得到如下输出:

Exit /scripts/tables.pl /var/lib/mysql/$1/ /var/mysql/$1/mysql.sock > /tmp/chktables_$1 2>&1 &
作业退出

FYI: alias tablecheck='. pathtobashscript/tablecheck.sh'
我在另一个bash脚本中有一堆别名。因此。指挥部

谁能帮我。。。我一直到谷歌的第三页才找到答案。尝试了那么多的事情却没有运气


我是个笨蛋。但可能是因为它是一份背景工作或是一条路径中的1美元。。。我不明白为什么$1不会被替换…

如果我复制了你的精确设置(我同意其他评论者的看法,这是不寻常的),那么我相信我会收到相同的错误消息

$ tablecheck foo
[1]+  Exit 127                /scripts/tables.pl /var/lib/mysql/$1/ /var/mysql/$1/mysql.sock > /tmp/chktables_$1 2>&1
在它生成的/tmp/chktables\u foo文件中,还有一条额外的错误消息,在我的例子中是“bash:/scripts/tables.pl:没有这样的文件或目录”


我怀疑在您的情况下权限是错误的

如果我复制了您的确切设置(我同意其他评论者的看法,这是不寻常的),那么我相信我会收到相同的错误消息

$ tablecheck foo
[1]+  Exit 127                /scripts/tables.pl /var/lib/mysql/$1/ /var/mysql/$1/mysql.sock > /tmp/chktables_$1 2>&1
在它生成的/tmp/chktables\u foo文件中,还有一条额外的错误消息,在我的例子中是“bash:/scripts/tables.pl:没有这样的文件或目录”


我怀疑您的权限有误

您如何调用
tablecheck
?发布你的脚本
tablecheck.sh
对我来说很好,
$1
被shell很好地扩展了。#/bin/bash/scripts/tables.pl/var/lib/mysql/$1//var/mysql/$1/mysql.sock>/tmp/chktables\u$12>&1&能否在bash脚本中回显$1?因为$1对我来说很好。请提供一个最小的sh和Perl脚本来演示这个问题。我刚刚创建了一个Perl脚本
myscript.Perl
,其中包含
print“$ARGV[0]\n”
,一个bash脚本
myscript.bash
包含
/myscript.Perl”$1
,以及一个别名
alias myscript=“../myscript.bash
”。运行
myscriptfoo
打印
foo
很好,所以问题一定是脚本中的某些内容。请将其剥离到仍然显示错误行为的最小长度,并将其发布到此处。您如何调用
tablecheck
?发布你的脚本
tablecheck.sh
对我来说很好,
$1
被shell很好地扩展了。#/bin/bash/scripts/tables.pl/var/lib/mysql/$1//var/mysql/$1/mysql.sock>/tmp/chktables\u$12>&1&能否在bash脚本中回显$1?因为$1对我来说很好。请提供一个最小的sh和Perl脚本来演示这个问题。我刚刚创建了一个Perl脚本
myscript.Perl
,其中包含
print“$ARGV[0]\n”
,一个bash脚本
myscript.bash
包含
/myscript.Perl”$1
,以及一个别名
alias myscript=“../myscript.bash
”。运行
myscriptfoo
打印
foo
很好,所以问题一定是脚本中的某些内容。请将其剥去至显示不良行为的最小长度,并张贴在此处。