Le résultat est celui souhaité; après un peu d'essais et d'erreurs. Je ne comprends pas ce que le "2: -" et le "3: -" font/signifient. Quelqu'un peut-il expliquer.
#!/bin/bash
pid=$(ps -ef | grep Java | awk ' NR ==1 {print $2}')
count=${2:-30} # defaults to 30 times
delay=${3:-10} # defaults to 10 second
mkdir $(date +"%y%m%d")
folder=$(date +"%y%m%d")
while [ $count -gt 0 ]
do
jstack $pid >./"$folder"/jstack.$(date +%H%M%S.%N)
sleep $delay
let count--
echo -n "."
done
C'est une extension de paramètre, cela signifie si le troisième argument est nul ou non défini, remplacez-le par ce qui est après : -
$ x=
$ echo ${x:-1}
1
$ echo $x
$
Il existe également un autre PE similaire qui affecte la valeur si la variable est nulle:
$ x=
$ echo ${x:=1}
1
$ echo $x
1