2011-10-14 30 views
1

我有一個shell腳本application.sh,如下所示。詢問bash腳本的含義

#! /bin/busybox sh 

set -o nounset -o errexit 

readonly emul_script="/usr/local/bin/emul.sh" 
readonly profile="/etc/vendor/profile"  
source "${profile}"     

_usage() { 
     cat << EOF 
${0} [-d] 
     -d  :debug 
EOF 

上述腳本啓動特定的應用程序。我的問題與從_usage開始的部分有關,我不太明白它的含義,也不知道它是如何使用的。

回答

4

<<heredoc構造和cat的一切直到結束標記(在這種情況下爲EOF)到標準輸出。

${0}是輸入文件的名稱,這將打印類似以下到stdout:

application.sh [-d] 
    -d  :debug 

你缺少的方式尾隨}

1

添加到trojanfoe說的,_usage()是一個shell函數。

但它永遠不會被調用,也不會調用應用程序,所以我認爲這只是腳本的一部分。

0

_usage函數可能從${profile}腳本中調用,該腳本來源於其上方。

請注意,您可能希望將它放在source行之前,因爲嚴格來說,它必須在使用之前定義。