#====================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: - 。}如果有任何文章解释这个是什么意思怎么用
答案 0 :(得分:1)
${a:-b}
表示,如手册中所述,如果已定义,则使用$a
,否则只需b
。
这里的想法是,如果脚本收到一个参数,将定义$1
,脚本将cd
到该目录。如果脚本没有收到参数,${1-.}
将扩展为提供的默认值,.
。
由于.
表示当前目录而cd .
是无操作,因此这基本上意味着&#34; cd
到$1
(如果可用),否则只需携带使用脚本。&#34;