GNU/Linux >> Belajar Linux >  >> Linux

BASH:cara melakukan aritmatika pada angka dalam pipa

echo 1 2 3 4 5|{
  read line; 
  for i in $line;
  do
    echo -n "$((i * i)) "; 
  done; 
  echo
}

{} membuat pengelompokan. Sebagai gantinya, Anda dapat membuat skrip untuk itu.


Saya akan menulis:

echo "1 2 3 4 5" | {
  for N in $(cat); do
    echo $((N ** 2))
  done | xargs
}

Kita bisa menganggapnya sebagai "peta" (pemrograman fungsional). Ada banyak cara untuk menulis fungsi "peta" di bash (menggunakan stdin, function args, ...), misalnya:

map_stdin() {
  local FUNCTION=$1
  while read LINE; do
    $FUNCTION $LINE
  done
}

square() { echo "$(($1 * $1))"; }

$ echo "1 2 3 4 5" | xargs -n1 | map_stdin square | xargs
1 4 9 16 25

Linux
  1. Bagaimana Melakukan Perhitungan Integer &Float, Dalam Bash Atau Bahasa/kerangka Lainnya?

  2. Bagaimana Cara Mengatur Parameter Saat Pipa Bash Script Ke Bash?

  3. Bagaimana Cara Mendeteksi Bash>=4.0?

  1. Tanda kurung Dalam Expr Aritmatika:3 * (2 + 1)?

  2. Cara menggemakan Baris Baru di Bash Shell Script

  3. Bagaimana cara menguji apakah suatu variabel adalah angka di Bash?

  1. Cara menulis loop di Bash

  2. Bagaimana Cara Men-debug Skrip Bash?

  3. Bagaimana bash menguji 'false'?