Komentar Ravi pada dasarnya adalah jawabannya. Fungsi mengambil argumennya sendiri. Jika Anda ingin agar sama dengan argumen baris perintah, Anda harus meneruskannya. Jika tidak, Anda jelas memanggil fungsi tanpa argumen.
Yang mengatakan, Anda bisa jika Anda suka menyimpan argumen baris perintah dalam larik global untuk digunakan dalam fungsi lain:
my_function() {
echo "stored arguments:"
for arg in "${commandline_args[@]}"; do
echo " $arg"
done
}
commandline_args=("$@")
my_function
Anda harus mengakses argumen baris perintah melalui commandline_argsvariabel, tidak $@, $1, $2, dll, tapi mereka tersedia. Saya tidak mengetahui cara untuk menetapkan langsung ke array argumen, tetapi jika seseorang mengetahuinya, tolong beri tahu saya!
Juga, perhatikan cara saya menggunakan dan mengutip $@- ini adalah cara Anda memastikan karakter khusus (spasi) tidak kacau.