J'ai une variable qui apparaît sur l'écho comme ceci
$ echo $var
129 148
Je dois prendre seulement 129 en sortie. Comment vais-je diviser 129 et 148?
J'ai une variable qui apparaît sur l'écho comme ceci
$ echo $var
129 148
Je dois prendre seulement 129 en sortie. Comment vais-je diviser 129 et 148?
Réponses:
En plus de la suggestion de jasonwryan , vous pouvez utiliser cut
:
echo $var | cut -d' ' -f1
Ce qui précède cut
est la echo
sortie avec un délimiteur d'espace ( -d ' '
) et sort le premier champ ( -f1
)
cut
est un utilitaire standard. Votre script contient probablement une erreur ailleurs. Plus généralement, ne dites jamais «ça ne marche pas». Dites toujours exactement quel code vous avez exécuté, exactement ce qui s'est passé, et copiez-collez les messages d'erreur.
Une bonne façon de le faire est d'utiliser un tableau bash pour fractionner une chaîne sur des espaces. Vous pouvez déclarer un tableau simplement en utilisant des crochets:
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
devrait montrer: /bin/bash
ou similaire.
zsh
; (
zoom="one two three"; declare -a zoomie=( $( echo $zoom | cut -d' ' -f1- ) ); echo ${zoomie[2]};
echo "${var% *}" && echo "${var#* }"
...