2013-10-27 91 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:沒有這樣的文件或目錄「

我懷疑你的權限是錯誤的