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

时间:2013-10-27 05:05:49

标签: 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保持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美元不会被取代......

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:没有这样的文件或目录”

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