2013-10-27 89 views
1

内部我想通过使用bash脚本“tablecheck.sh”内部位置参数参数以一个perl脚本。我使用的是别名“tablecheck”来称呼“tablecheck.sh”无法参数传递到perl脚本bash脚本

#!/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

你怎么调用'tablecheck'?发表您的脚本'tablecheck.sh' – anubhava

+0

它正常工作对我来说,'$ 1'由外壳以及扩大。 –

+0

#!/ bin/bash /scripts/tables.pl/var/lib/mysql/$ 1//var/mysql/$1/mysql.sock>/tmp/chktables_ $ 1 2>&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:没有这样的文件或目录“

我怀疑你的权限是错误的