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

3
#====================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
你的问题已经包含了法语答案。 - Cyrus
1个回答

2
< p > ${a:-b} 的意思是,如手册中所解释的那样,如果定义了$a,则使用它,否则只使用b

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

由于.表示当前目录,而cd .是一个无操作命令,因此这基本上意味着“如果可用,请cd$1,否则只需继续执行脚本。”


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接