Довольно ясно, что при использовании сценариев с оболочками такого рода вещи можно выполнить огромным количеством способов (больше, чем большинство языков программирования) из-за всех различных методов и программ расширения переменных, таких как test
и [
и [[
и т.д.
Сейчас я просто ищу
DIR=$1 or .
Значение, моя переменная DIR должна содержать либо то, что указано в первом arg, либо в текущем каталоге.
В чем разница между этим и DIR=${1-.}
?
Я считаю, что синтаксис дефиса запутан, и искать более читаемый синтаксис.
Почему я не могу это сделать?
DIR="$1" || '.'
Я предполагаю, что это означает: "если $1 пуст, назначение все еще работает (DIR становится пустым), поэтому неверная команда". "никогда не выполняется".