Egyetlen sorom van szóközzel elválasztva.
Szükségem van arra, hogy a nyomtatott érték abszolút szám legyen.
Még egy számot kapok. A formátum, amellyel abszolút számot próbálok kapni. Semmi, amit csinálok, nem működik. Azt olvastam, hogy
abs(){ number }
ezt nekem kell megadnia, de úgy tűnik, hogy nem működik. Akkor is, ha ez működik, akkor hol dolgozza ezt a hurokba?
megjegyzések
Válasz
iv class = ” A “”
Bármely szám szorzata annak előjellel pozitív számot generál. Vagy ha megadja az abszolút értéket A jel függvénye nagyon egyszerű:
sign () { echo "$(( $1 < 0 ? -1 : 1 ))"; }
Az abszolút érték ekkor:
echo "$(( x * $(sign "$x") ))"
Természetesen sokkal könnyebb eltávolítani a vezető negatív előjelet (ha van ilyen), vagy a teljesség kedvéért bármilyen +
vagy -
jel (ha létezik) bármely vezető szóközzel:
echo "${x##*[+-]}" # assuming x is an integer valid in the shell.
Válasz
Ha negatív egész számod van, akkor azt stringként kezelheted, és eltávolíthatod a vezető kötőjelet
x=-5 echo ${x#-}. # "5"
zmodload zsh/mathfunc
után)abs()
számtani funkcióval rendelkezik. Ottecho "$(( abs(-12) ))"
12
.