我想使用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脚本中有一堆别名。因此。命令。
任何人都可以帮助我......我一直到谷歌的第3页找到答案。尝试了很多没有运气的东西。
我是个菜鸟。但可能是因为它是一个后台工作或路径上的1美元...我不明白为什么1美元不会被取代......
答案 0 :(得分: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_foo文件中还有一条错误消息,在我的例子中是“bash:/scripts/tables.pl:没有这样的文件或目录”
我怀疑你的情况下的权限是错误的