2013-11-02 31 views
0

我們的shell腳本的第一行讀取確保shell腳本啓動了正確的外殼

#!/bin/bash 

根據我的(有限的)Linux外殼所知,這導致使用/bin/bash當用戶直接調用這個腳本來啓動應用程序,例如,使用

$ ./myscript.sh 

不幸的是,腳本工作如預期,當用戶運行它使用

$ sh ./myscript.sh 

如何捕獲「錯誤」shell執行此腳本並向用戶顯示相應錯誤消息的情況?

回答

2
case "$BASH" in 
    *bash) :;; 
    *) echo >&2 "$0: please run this with bash."; exit 1;; 
esac 

或者你可以爲他們做它:

case "$BASH" in 
    *bash) :;; 
    *) exec bash "$0" "[email protected]";; 
esac