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

时间:2017-02-12 10:34:25

标签: bash parameter-expansion

#====================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 个答案:

答案 0 :(得分:1)

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

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

由于.表示当前目录而cd .是无操作,因此这基本上意味着&#34; cd$1(如果可用),否则只需携带使用脚本。&#34;