Saya ingin mengakumulasi ukuran garis sejumlah file yang terkandung dalam folder. Saya telah menulis skrip berikut:
let a=0
let num=0
for i in folder/*
do
num=`cat $i | wc -l`
a=$a+$num
done
echo $a
Apa yang saya dapatkan di akhir skrip adalah 123 + 234 + 432 + ... dan bukan hasil dari operasi aritmatika penambahan.
shell
shell-script
arithmetic
ingin tahu
sumber
sumber
$
dalam((...))
.a=$((a+num))
sudah baik.Anda juga dapat menggunakan kode ini
dan PASTIKAN BAHWA ADA RUANG PADA KEDUA SISI + DALAM "$ a + $ num"
sumber
Anda bisa mendeklarasikan jenis variabel terlebih dahulu:
sumber
Maaf, hasil edit sebelumnya adalah untuk pos yang berbeda. Di sini, hanya sedikit modifikasi pada skrip asli:
sumber
Jawabannya perlu menentukan di mana shell kode itu valid. Misalnya dalam bourne Shell (
sh
) hanya instruksi berikut ini yang valid:sedangkan kemungkinan lain yang terdaftar oleh @manatwork mungkin valid di bourne lagi shell (
bash
)sumber
saya membuatnya seperti ini
sumber