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 cut
S den echo
Ausgang mit einem Raumbegrenzungszeichen ( -d ' '
) und gibt das erste Feld ( -f1
)
cut
ist 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 $SHELL
sollte zeigen: /bin/bash
oder ähnlich.
zsh
; (
zoom="one two three"; declare -a zoomie=( $( echo $zoom | cut -d' ' -f1- ) ); echo ${zoomie[2]};
echo "${var% *}" && echo "${var#* }"
...