Di dalam skrip bash saya, saya ingin menguraikan nol, satu atau dua parameter (skrip dapat mengenalinya), lalu meneruskan parameter yang tersisa ke perintah yang dipanggil dalam skrip. Bagaimana saya bisa melakukan itu?
bash
command-line
Łukasz Lew
sumber
sumber
$@
pada dasarnya memperlakukan setiap elemen dari array sebagai string yang dikutip - mereka dilewatkan tanpa kesempatan untuk ekspansi. Ini juga memastikan bahwa masing-masing dipandang sebagai kata yang terpisah. Penjelasan ini bersama dengan skrip pengujian yang menunjukkan perbedaan ada di sini: tldp.org/LDP/abs/html/internalvariables.html#APPREFbash menggunakan perintah shift :
misal shifttest.sh:
shifttest.sh 1 2 3 menghasilkan
sumber
$1
tanpa mengutipnya"$1"
, maka shell akan melakukan pemisahan kata, jadi mis.foo bar
Akan diteruskan sebagaifoo
danbar
secara terpisah.Bash mendukung parameter subset (lihat Subset dan substring ), sehingga Anda dapat memilih parameter mana untuk diproses / lulus seperti ini.
buka file baru dan edit: vim
r.sh
:menjalankannya:
hasilnya adalah:
sumber