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
если доступно, в противном случае просто продолжайте работу со сценарием."