Saya dapat memotong dan menempelkan kode Anda ke dalam file dan berjalan dengan benar. Jika Anda menjalankannya seperti ini, seharusnya berfungsi:
"File.sh" Anda:
#!/bin/bash
# june 2011
if [ $# -lt 3 -o $# -gt 3 ]; then
echo "Error... Usage: $0 host database username"
exit 0
fi
Perintah:
$ ./file.sh arg1 arg2 arg3
Perhatikan bahwa "file.sh" harus dapat dijalankan:
$ chmod +x file.sh
Anda mungkin mendapatkan kesalahan itu b / c dari cara Anda melakukan input (w / a pipa, wortel, dll.). Anda juga dapat mencoba membagi kondisinya menjadi dua:
if [ $# -lt 3 ] || [ $# -gt 3 ]; then
echo "Error... Usage: $0 host database username"
exit 0
fi
Atau, karena Anda menggunakan bash
, Anda dapat menggunakan sintaks bawaan:
if [[ $# -lt 3 || $# -gt 3 ]]; then
echo "Error... Usage: $0 host database username"
exit 0
fi
Dan, terakhir, Anda tentu saja dapat memeriksa apakah 3 argumen diberikan (bersih, pertahankan kompatibilitas shell POSIX):
if [ $# -ne 3 ]; then
echo "Error... Usage: $0 host database username"
exit 0
fi