Mam zmienną, która pokazuje na echu w ten sposób
$ echo $var
129 148
Muszę wziąć tylko 129 jako wynik. Jak podzielę 129 i 148?
Mam zmienną, która pokazuje na echu w ten sposób
$ echo $var
129 148
Muszę wziąć tylko 129 jako wynik. Jak podzielę 129 i 148?
Odpowiedzi:
Oprócz sugestii Jasonwryana możesz użyć cut
:
echo $var | cut -d' ' -f1
Powyżej cut
jest echo
wyjściem z separatorem spacji ( -d ' '
) i wyprowadza pierwsze pole ( -f1
)
cut
jest standardowym narzędziem. Twój skrypt prawdopodobnie zawiera błąd w innym miejscu. Mówiąc bardziej ogólnie, nigdy nie mów „to nie działa”. Zawsze mów dokładnie, jaki kod uruchomiłeś, dokładnie co się stało, i kopiuj i wklej komunikaty o błędach.
Świetnym sposobem na to jest użycie tablicy bash, aby podzielić ciąg znaków na spacje. Możesz zadeklarować tablicę za pomocą nawiasów:
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
powinien pokazywać: /bin/bash
lub podobny.
zsh
; (
zoom="one two three"; declare -a zoomie=( $( echo $zoom | cut -d' ' -f1- ) ); echo ${zoomie[2]};
echo "${var% *}" && echo "${var#* }"
...