2013-03-08 139 views
0

我有這個bash腳本,我可以傳遞給三個參數。當我從目錄./script -h調用它時,它的作用就像一個魅力,但是當我將同一個文件複製到/ bin並從script -h的任何位置調用它時,它似乎忽略了傳遞的參數。Bash腳本忽略/ bin中的參數

爲什麼?或者更重要的是: 我能做些什麼來改變它?

+0

你確定你在腳本的第一行調用了bash嗎? #!/ usr/bin/bash – 2013-03-08 08:52:05

+2

另請做'哪個腳本'來查看你是否調用了正確的腳本 – user000001 2013-03-08 08:53:26

+0

第一行是正確的,但user000001有解決方案!我使用了哪個命令,結果我在/ usr/bin中仍然保留了該文件的舊副本。這被稱爲和/ bin中的新副本被忽略。刪除舊的它現在一切正常。謝謝! – fortranondebian 2013-03-08 09:07:16

回答

2

script是一個非常有用的標準應用程序,它會獲取當前會話的副本(查找名爲typescript的文件)。它創建另一個shell界面,所以你可能沒有注意到它正在運行。

當您編寫新程序時,請使用命名約定,如script.sh

編輯:

如果你不喜歡使用文件後綴(因爲它看起來太像Windows),那麼細,但使用一些其他的命名規則,這將確保你的腳本名不與現有的命令衝突。例如,test是另一個最喜歡的。例如,您可以使用type來檢查命令,但只檢查當前的環境,但如果使用不同的用戶名運行,則可能仍然存在名稱衝突。

+0

這個答案怎麼樣?爲什麼他會那樣做?它不是風箏。 – 2013-03-08 08:52:34

+0

這是一個答案,因爲它可能是被調用的所提及的'script'(在'/ usr/bin'中),而不是用戶的腳本(在'/ bin'中)。 – robertklep 2013-03-08 08:57:03

+0

聽起來像是對我的回答。 'script'已經是一個Linux命令,所以OP可能會得到內置命令而不是實際的腳本。 – 2013-03-08 08:57:35