cd${1:-.}这是什么意思 #=========================脚本5--ls Reccursive avec cd======= #!/bin/bash exec 2>/dev/null#redirige stderr pour toute la suite #au cas ou le脚本est发票无参数$1 #不存在,不存在。 cd${1:-.}#我想理解的问题 因为我在*;做 如果[-d$i];然后 echo“$PWD/$i/

cd${1:-.}这是什么意思 #=========================脚本5--ls Reccursive avec cd======= #!/bin/bash exec 2>/dev/null#redirige stderr pour toute la suite #au cas ou le脚本est发票无参数$1 #不存在,不存在。 cd${1:-.}#我想理解的问题 因为我在*;做 如果[-d$i];然后 echo“$PWD/$i/,bash,parameter-expansion,Bash,Parameter Expansion,${a:-b}如本手册所述,如果定义了$a,则表示使用$a,否则仅使用b 这里的想法是,如果脚本收到一个参数,$1将被定义,脚本将cd发送到该目录。如果脚本没有收到参数,${1-.}将扩展到提供的默认值, 由于表示当前目录和cd.是不可操作的,这基本上意味着,“cd到$1(如果可用),否则只需继续编写脚本即可。”您的问题已经包含了法语答案。 #====================script 5 -- ls reccurssive avec cd ======= #!/bin/bash ex

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

这里的想法是,如果脚本收到一个参数,
$1
将被定义,脚本将
cd
发送到该目录。如果脚本没有收到参数,
${1-.}
将扩展到提供的默认值,


由于
表示当前目录和
cd.
是不可操作的,这基本上意味着,“
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