很明顯,使用shell腳本編程,這種事情可以通過很多方式完成(比絕大多數編程語言),因爲所有不同的變量擴展的方法和程序,如test
和[
和[[
等Bash:如何從參數中設置一個變量,並使用默認值
現在我只是在尋找
DIR=$1 or .
含義,我的DIR變量應包含什麼是在第一個參數指定或當前目錄。
this和DIR=${1-.}
有什麼區別?
我發現連字符語法混亂,並尋求更可讀的語法。
爲什麼我不能這樣做?
DIR="$1" || '.'
我猜這意味着「如果$ 1爲空,分配仍然有效(DIR變爲空),所以無效命令'。'永遠不會被執行。「
我發現我的答案是冒號的含義:http://wiki.bash-hackers.org/syntax/pe#use_a_default_value – 2013-04-18 05:07:26
擁抱語言。並非所有的語言都有相同的習語。 'DIR = $ {1: - 。}'是在任何POSIX兼容shell中表達這種邏輯的完美自然方式。 – chepner 2013-04-18 12:26:36
我發現downvote是完全合理的。我不喜歡我寫這個問題的方式。我猜,那時我很沮喪。但是自從我發佈這個版本以來,我從來沒有遇到過任何記憶'$ {VAR:-default}'語法的麻煩。我要編輯我的問題,以減少它。我相信你不是downvoter @chepner,但你是絕對正確的! – 2017-02-02 19:29:16