Saya mencoba untuk menambahkan 1 angka dari baris perintah, dan satu angka seperti default. Misalnya: Ketika pengguna mengetikkan angka 50, skrip akan menambahkan 10 (sebagai nomor default).
./script 50
The sum of 50+ 10 is 60.
Inilah yang saya miliki sejauh ini.
echo -n "Please enter a number: "
read number
default = 10
sum = $((default + number)) // this line does not seem to work
echo "The sum of $number and 10 is $sum."
Apakah saya salah sintaks? Saya tidak yakin apakah saya berada di jalur yang benar. Apakah saya salah menambahkan angka? Haruskah saya menggunakan awk saja?
let sum = $default + $number
echo
dan kemudianread
langsung Anda dapat mengetik:read -p 'Please enter a number: ' yournumber
Jawaban:
Spasi menyebabkan kesalahan.
Jika Anda ingin pengguna memasukkan nomor ketika diminta sebagai "Silakan masukkan nomor:", Anda dapat menggunakan skrip Anda dengan beberapa koreksi sebagai:
Memeriksa:
Jika Anda ingin pengguna memasukkan nomor sebagai argumen ke skrip, Anda dapat menggunakan skrip di bawah ini:
Memeriksa:
sumber
Anda seharusnya tidak memiliki spasi di antara "default = 10" & "jumlah = $", juga default & angka harus memiliki $ sebelum mereka membaca dari variabel.
Script kemudian berfungsi seperti yang diharapkan untuk saya, ketika ditulis seperti di bawah ini;
sumber
$
dalam ekspresi aritmatika. Misalnya, coba ini:num=5;def=10;echo "sum = $((num + def))"
Ini adalah cara tercepat untuk melakukan apa yang Anda minta:
Keluaran:
sumber
./script.sh '((PATH=0)+(ANY_OTHER_VARNAME=[ANY INTEGER]))'