Bunun gibi yankı gösteren bir değişkenim var
$ echo $var
129 148
Çıktı olarak sadece 129 almak zorundayım. 129 ve 148'i nasıl bölebilirim?
Bunun gibi yankı gösteren bir değişkenim var
$ echo $var
129 148
Çıktı olarak sadece 129 almak zorundayım. 129 ve 148'i nasıl bölebilirim?
Yanıtlar:
Jasonwryan'ın önerisine ek olarak şunları kullanabilirsiniz cut
:
echo $var | cut -d' ' -f1
Yukarıda cut
s echo
boşluk sınırlayıcı (ile çıkış -d ' '
() ve çıkışları ilk alan -f1
)
cut
standart bir yardımcı programdır. Komut dosyanız muhtemelen başka bir yerde hata veriyor. Daha genel olarak, asla “çalışmıyor” demeyin. Her zaman tam olarak hangi kodu çalıştırdığınızı, tam olarak ne olduğunu söyleyin ve hata iletilerini kopyalayıp yapıştırın.
Bunu yapmanın düzgün bir yolu, bir dizeyi boşluklara bölmek için bir bash dizisi kullanmaktır. Bir diziyi basitçe parantez kullanarak bildirebilirsiniz:
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
göstermelidir: /bin/bash
veya benzeri.
zsh
; (
zoom="one two three"; declare -a zoomie=( $( echo $zoom | cut -d' ' -f1- ) ); echo ${zoomie[2]};
echo "${var% *}" && echo "${var#* }"
...