2
我知道我可以做:分配默認值變量,如果一個未設置,猛砸
echo ${var:-4}
打印4
如果var
爲null,
但如何在這種情況下分配-n
.. ?
echo ${var:--n}
不起作用。
這雖然工作..
echo ${var:---n}
但在這種情況下,它打印出--n
,我需要它來打印-n
。
我知道我可以做:分配默認值變量,如果一個未設置,猛砸
echo ${var:-4}
打印4
如果var
爲null,
但如何在這種情況下分配-n
.. ?
echo ${var:--n}
不起作用。
這雖然工作..
echo ${var:---n}
但在這種情況下,它打印出--n
,我需要它來打印-n
。
問題不在於默認值,而是在echo
:-n
對它有特殊含義(檢查help echo
)。使用printf
代替:
printf '%s\n' "${var:--n}"
是的,我知道'-n'回聲..但它現在沒有發生在我的身邊..有趣的是,這發生了副作用..如果我碰巧嘗試與'$ {var: - a }',它會工作;) – branquito
'echo'簡直是允許做什麼** **當傳遞'-n'作爲參數。請參閱[POSIX規範](http://pubs.opengroup.org/onlinepubs/009604599/utilities/echo.html):*「如果第一個操作數是」-n「,或者任何操作數包含反斜槓( '\')字符,結果是實現定義的「*」。當傳遞'-n'或任何帶有文字反斜槓的內容時,'echo'可能會導致後空翻或殺死你的貓並仍然符合POSIX標準。遵循規範中APPLICATION USAGE部分的建議,並使用'printf'代替。 –
[在bash中使用單個命令將默認值分配給shell變量](http://stackoverflow.com/questions/2013547/assigning-default-values-to-shell-variables-with-a-single-command在 - bash) –
@ElmarPeise,...我不知道它是什麼 - 直接的原因肯定是不同的,至少。 –