2014-03-05 50 views
0

我有一個超簡單的腳本,其中包含Linux程序碎片,它包含從命令行(bash)始終工作的參數。特別是'shred -uzn 35'簡單的Linux碎片腳本錯誤

名爲D的腳本具有執行權限集。

當我運行該腳本,Bash打印錯誤:

$ D some_file_to_delete 
shred: missing file operand 

我意識到,解決問題可能是因爲程序本身一樣簡單。請幫忙?

在此先感謝。

編輯:錯誤「缺少文件操作數」是由於腳本沒有設置爲採取參數,如通過「$ @」的事實。另外,正如接受的答案中所述,我同意一個別名對於這種情況是完全合理的(比在$ PATH中的某個腳本更有意義)。

+0

顯示腳本 – hek2mgl

+0

您可以發佈您的腳本呢? –

+0

該文件僅包含命令'shred -uzn 35' –

回答

3

由於您使用的腳本,而不是一個別名,你需要通過

shred -uzn 35 "[email protected]" 

來傳遞參數在這種情況下,然而,我建議你不要做它的別名。在你.bashrc文件,補充一點:

alias D='shred -uzn 35' 
+0

我將定義一個函數:'D(){shred -uzn 35「$ @」; }'。很少有理由定義別名而不是函數。 – chepner

+0

@chepner我不同意。這只是運行帶有一些默認參數的命令,這基本上是一個別名。 – Kevin

+0

我甚至會說當別名足夠時不要打擾一個函數。你爲什麼不喜歡別名? – Kevin