Ich habe eine Variable, die auf Echo wie folgt angezeigt wird
$ echo $var
129 148
Ich muss nur 129 als Ausgabe nehmen. Wie teile ich 129 und 148 auf?
Ich habe eine Variable, die auf Echo wie folgt angezeigt wird
$ echo $var
129 148
Ich muss nur 129 als Ausgabe nehmen. Wie teile ich 129 und 148 auf?
Antworten:
Zusätzlich zu jasonwryans Vorschlag können Sie Folgendes verwenden cut:
echo $var | cut -d' ' -f1
Der obige cutS den echoAusgang mit einem Raumbegrenzungszeichen ( -d ' ') und gibt das erste Feld ( -f1)
cutist ein Standarddienstprogramm. Ihr Skript hat wahrscheinlich irgendwo anders einen Fehler. Sagen Sie im Allgemeinen niemals „es funktioniert nicht“. Sagen Sie immer genau, welchen Code Sie ausgeführt haben, was genau passiert ist und kopieren Sie Fehlermeldungen.
Eine gute Möglichkeit, dies zu tun, besteht darin, ein Bash-Array zu verwenden, um eine Zeichenfolge in Leerzeichen aufzuteilen. Sie können ein Array einfach mit eckigen Klammern deklarieren:
var="129 148 181"
vars=( $var )
echo "First word of var: '${vars[0]}'"
echo "Second word of var: '${vars[1]}'"
echo "Third word of var: '${vars[2]}'"
echo "Number of words in var: '${#vars[@]}'"
echo $SHELLsollte zeigen: /bin/bashoder ähnlich.
zsh; (
zoom="one two three"; declare -a zoomie=( $( echo $zoom | cut -d' ' -f1- ) ); echo ${zoomie[2]};
echo "${var% *}" && echo "${var#* }"...