CD ${1:-.} что это значит

#====================script 5 -- ls reccurssive avec cd =======
#!/bin/bash
exec 2>/dev/null # redirige stderr pour toute la suite
# au cas ou le script est invoque sans argument $1
# n'existe pas, la commande suivante devient cd .
cd ${1:-.} # problem that i miss understood
for i in * ; do
if [ -d $i ] ; then
echo "$PWD/$i/ <-- repertoire"
$0 $i # le script s'invoque lui-même
else
echo $PWD/$i
fi
done

================================================== знак равно

Может кто-нибудь объяснить мне этот CD ${1:-.}, что означает, как его использовать, если есть какая-либо статья объяснить это

1 ответ

Решение

${a:-b} означает, как описано в руководстве, использовать $a если это определено, а в остальном просто b,

Идея в том, что если сценарий получил аргумент, $1 будет определен, и скрипт будет cd в этот каталог. Если сценарий не получил аргумент, ${1-.} расширится до предоставленного значения по умолчанию, .,

поскольку . означает текущий каталог и cd . это неоперация, это в основном означает "cd в $1 если доступно, в противном случае просто продолжайте работу со сценарием."

Другие вопросы по тегам