2017-02-12 3 views
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 

을 의미합니까 무엇 ================================ ===================

어떤 사람이 이것을 설명하면 어떤 의미로 사용하는지이 사람이 나에게이 CD $ {1 : -.}을 설명 할 수 있습니까?

+1

질문에 이미 답변이 프랑스어로 나와 있습니다. – Cyrus

답변

2

${a:-b}은 설명서에 설명 된대로 $a이 정의 된 경우이를 의미하고 그렇지 않은 경우에만 b을 의미합니다.

스크립트가 인수를받은 경우 $1이 정의되고 스크립트는 해당 디렉토리에 cd이됩니다. 스크립트가 인수를받지 못하면 ${1-.}은 제공된 기본값 인, .으로 확장됩니다. . 이후

은 현재 디렉토리를 의미 cd .는 어떤 조합이 기본적으로 의미 없다 "cd$1 사용할 수있는 경우는 true, 그렇지 않은 경우 단순히 스크립트에 실시하고 있습니다."