Jest całkiem jasne, że przy użyciu skryptów powłoki tego typu rzeczy można osiągnąć na wiele sposobów (więcej niż większość języków programowania) ze względu na wszystkie różne zmienne metody ekspansji i programy takie jak test
i [
i [[
itpBash: Jak ustawić zmienną z argumentu iz domyślną wartością
teraz jestem po prostu szukasz
DIR=$1 or .
znaczenia, moja zmienna DIR powinien zawierać zarówno to, co jest określone w pierwszym lub arg bieżący katalog.
Jaka jest różnica między tym a DIR=${1-.}
?
Uważam, że składnia łącznika jest myląca i szukam bardziej czytelnej składni.
Dlaczego nie mogę tego zrobić?
DIR="$1" || '.'
Zgaduję, to znaczy „jeśli $ 1 jest pusty, przypisanie nadal działa (DIR staje się pusty), a więc nieważny komenda«» nigdy nie zostanie stracony. "
znalazłem moją odpowiedź na co dwukropek oznacza: http://wiki.bash-hackers.org/syntax/pe#use_a_default_value –
Embrace języka. Nie wszystkie języki mają te same idiomy. 'DIR = $ {1: -.}' Jest całkowicie naturalnym sposobem wyrażenia tej logiki w dowolnej powłoce kompatybilnej z POSIX. – chepner
Uważam, że ustępstwo jest całkowicie uzasadnione. Nie podoba mi się sposób, w jaki napisałem to pytanie. Byłem sfrustrowany, jak sądzę. Ale odkąd to opublikowałem, nigdy nie miałem problemu z zapamiętywaniem składni '$ {VAR: -default}'. Zamierzam edytować moje pytanie, aby było mniej małostkowe. Jestem pewien, że nie byłeś przykrywcą @chepner, ale masz absolutną rację! –