es funktioniert nicht. Ich habe es bereits benutzt. Der Befehl wurde nicht gefunden.
Surbhi
3
@surbhi Was sagt Befehl nicht gefunden? 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.
Gilles 'SO - hör auf böse zu sein'
Diese Antwort sollte akzeptiert werden, da dies der prägnanteste und direkteste Weg ist. In Fällen, die komplizierter sind als das angegebene Beispiel, funktioniert das natürlich nicht.
Dan Nguyen
9
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[@]}'"
Es hängt davon ab, ob Sie Bash verwenden. Wenn Sie eine andere Shell verwenden, funktioniert sie möglicherweise nicht. echo $SHELLsollte zeigen: /bin/bashoder ähnlich.
Gogoud
funktioniert nicht in zsh; (
TonyH
Dies funktioniert in ZSHzoom="one two three"; declare -a zoomie=( $( echo $zoom | cut -d' ' -f1- ) ); echo ${zoomie[2]};
echo "${var% *}" && echo "${var#* }"
...Antworten:
Zusätzlich zu jasonwryans Vorschlag können Sie Folgendes verwenden
cut
:Der obige
cut
S denecho
Ausgang mit einem Raumbegrenzungszeichen (-d ' '
) und gibt das erste Feld (-f1
)quelle
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:
quelle
echo $SHELL
sollte zeigen:/bin/bash
oder ähnlich.zsh
; (zoom="one two three"; declare -a zoomie=( $( echo $zoom | cut -d' ' -f1- ) ); echo ${zoomie[2]};