GNU/Linux >> Belajar Linux >  >> Linux

Saya ingin menyimpan semua argumen baris perintah ke skrip Bash ke dalam satu variabel

echo "$*"

akan melakukan apa yang Anda inginkan, yaitu mencetak seluruh argumen baris perintah, dipisahkan oleh spasi (atau, secara teknis, berapa pun nilai $IFS adalah). Jika Anda ingin menyimpannya ke dalam variabel, Anda bisa melakukannya

thevar="$*"

Jika itu tidak cukup menjawab pertanyaan Anda, saya tidak yakin harus berkata apa lagi...


Jika Anda ingin menghindari keterlibatan $IFS, gunakan [email protected] (atau jangan sertakan $* dalam tanda kutip)

$ cat atsplat
IFS="_"
echo "     at: [email protected]"
echo "  splat: $*"
echo "noquote: "$*

$ ./atsplat this is a test
     at: this is a test
  splat: this_is_a_test
noquote: this is a test

Perilaku IFS juga mengikuti penetapan variabel.

$ cat atsplat2
IFS="_"
[email protected]
splatvar=$*
echo "     at: $atvar"
echo "  splat: $splatvar"
echo "noquote: "$splatvar

$ ./atsplat2 this is a test
     at: this is a test
  splat: this_is_a_test
noquote: this is a test

Perhatikan bahwa jika penugasan ke $IFS dilakukan setelah penugasan $splatvar, maka semua output akan sama ($IFS tidak akan berpengaruh pada contoh "atsplat2").


Linux
  1. Bagaimana cara mendapatkan nama cabang git saat ini menjadi variabel dalam skrip Shell?

  2. Bagaimana cara menyimpan perintah dalam variabel dalam skrip Shell?

  3. Mensimulasikan penekanan tombol ENTER dalam skrip bash

  1. Semua baris baru dihapus saat menyimpan keluaran kucing ke dalam variabel

  2. Cakupan variabel untuk skrip bash shell dan fungsi dalam skrip

  3. Bagaimana cara membagi string dengan tanda kutip (seperti argumen perintah) di bash?

  1. Lewati Argumen Baris Perintah ke Skrip Bash?

  2. Kurung Tunggal Dalam Penugasan Variabel Bash?

  3. Bagaimana bash menguji 'false'?