Powiel możliwe:
Ternary operator (?:) in BashCzy w bash występuje inline-if z przydziałem (warunkowym potrójnym)?
Gdyby to było AS3 lub Java, chciałbym wykonać następujące czynności:
fileName = dirName + "/" + (useDefault ? defaultName : customName) + ".txt";
Ale w skorupkach, które wydaje się niepotrzebnie skomplikowane, wymagające kilka linii kodu, a także sporo powtórzeń kodu.
if [ $useDefault ]; then
fileName="$dirName/$defaultName.txt"
else
fileName="$dirName/$customName.txt"
fi
Można skompresować to wszystko w jedną linię, ale to ogromnie poświęca jasność.
Czy istnieje lepszy sposób zapisywania wiersza if
z przypisaniem zmiennych w powłoce?
Odpowiedź Williama Purcella jest mniej bezpośrednia niż moja, ale jeśli założenie, że '$ useDefault' kontroluje, czy użyć domyślnej nazwy, czy nie, może to być czystsze rozwiązanie. –
Zaktualizowałem swoją odpowiedź, aby poprawnie cytować wszystko. –