2010-11-15 118 views
2

我有一個可執行的shell腳本名稱project2。以下是我的老師給我的項目指導之一。如何將命令行參數放到shell腳本中

此腳本必須接受至少一個 命令行參數:目錄 其中它的輸出將被放置。如果 那個目錄沒有在 命令行上給出,那麼腳本應該使用合理的默認目錄 。

你能告訴我如何讓我的腳本接受命令行。我以前沒有做過這樣的事情。任何幫助將不勝感激。非常感謝。

+0

我假設你正在使用bash,而不是其他一些shell,對嗎? – 2010-11-15 06:43:06

+0

是的,我使用的是Bash – 2010-11-15 06:43:58

回答

5

對於bash,命令行參數存儲在$1,$2等等,而$#會給你計數。此外,shift可用於將它們全部「左移」一個位置並減少計數。

下面的腳本是瞭解一個很好的起點的參數是如何工作的:

echo $# 
while [[ $# -gt 0 ]] ; do 
    echo "$1" 
    shift 
done 

當你運行它:

./myprog.sh hello there my name is "pax  diablo"

輸出:

 
6 
hello 
there 
my 
name 
is 
pax  diablo 

你的任務的基本思想是:

  • 檢查參數計數以查看它是否爲零。
  • 如果它爲零,請將變量設置爲一些有用的默認值。
  • 如果它不是零,請根據第一個參數設置該變量。
  • 做任何你必須做的變量。
+0

另請參閱'man bash'中的「特殊參數」部分 – 2010-11-15 06:56:10

+0

哇,謝謝你的詳細信息。現在我明白它是如何工作的。非常感謝。 – 2010-11-15 08:02:52

相關問題