2014-12-12 16 views
24

Das Ergebnis ist das gewünschte; nach ein bisschen Versuch und Irrtum. Ich verstehe nicht, was das "2: -" und "3: -" bedeutet/bedeutet. Kann jemand das erklären?Was bedeutet der Doppelpunkt Strich ": -" in Bash

#!/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 

Dank

Stelios

+1

http://tldp.org/LDP/abs/html/string-manipulation.html sucht '$ {string: Position: Länge}' –

+4

Sie nicht bekommen, es Marc B –

+1

Diese Frage ist sinnvoller, da Google nicht sucht: - –

Antwort

31

Es ist ein Parameter Expansion bedeutet es wenn das dritte Argument null oder nicht gesetzt ist, ersetzen Sie es mit dem, was nach: -

$ x= 
$ echo ${x:-1} 
1 
$ echo $x 

$ 

dort ist auch eine andere ähnliche PE, die den Wert zuweisen, wenn die Variable null ist:

$ x= 
$ echo ${x:=1} 
1 
$ echo $x 
1 

prüfen http://wiki.bash-hackers.org/syntax/pe

+1

Danke für die Erklärung sputnick. – Stelios

+1

Anstatt "void", ist es genauer zu sagen "Unset oder Null". – chepner

Verwandte Themen