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 脚本中有一堆别名。因此 。命令。

谁能帮助我...我一直到谷歌的第 3 页才找到答案。尝试了很多事情都没有运气。

我是菜鸟。但可能与它作为后台工作或路径中的 1 美元有关......我不明白为什么 1 美元不会被替换......

4

1 回答 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_foo 文件中还有一条额外的错误消息,在我的情况下是“bash:/scripts/tables.pl:没有这样的文件或目录”

我怀疑你的权限是错误的

于 2013-10-27T09:21:03.797 回答