cd ${1:-.} 是什么意思

cd ${1:-.} what does that mean

#====================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 
# 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"
[=10=] $i # le script s'invoque lui-même
else
echo $PWD/$i
fi
done

============================================= ======

谁能给我解释一下这张 cd ${1:-.} 是什么意思如果有文章解释一下如何使用它

${a:-b} 表示,如手册中所述,如果已定义则使用 $a,否则仅使用 b.

这里的想法是,如果脚本收到一个参数,</code> 将被定义,并且脚本将 <code>cd 到那个目录。如果脚本没有收到参数,${1-.} 将扩展为提供的 默认值 ..

因为 . 表示当前目录而 cd . 是一个 no-op,这基本上意味着,“cd 如果可用,否则只是继续脚本。"