Bagaimana cara mengeset parameter posisi?


11

Bagaimana saya melakukan ini:

set foo bar baz
unset # Something else here
echo $# # Should ouput 0

Dengan melakukan set "", $#akan tetap 1 dan bukan 0.

Jawaban:


14

Ok ini hanya bodoh, dan saya tahu menggunakan set --akan berhasil.


@Gilles: Menurut halaman manual bash, set -tanpa argumen, parameter posisi tidak berubah.
camh

@camh saya harus tidak setuju. Saya melihat ini di manual: set - Jika tidak ada argumen yang mengikuti opsi ini, maka parameter posisi tidak disetel. Jika tidak, parameter posisi diatur ke argumen, bahkan jika beberapa dari mereka mulai dengan -.
kdubs

@kdubs Anda mengutip halaman manual untuk set --. Saya telah menggunakan set -(tanda hubung tunggal), yang mengatakan: "Jika tidak ada argumen, parameter posisi tetap tidak berubah."
camh

kamu benar. Saya membuat mereka bingung. layar saya membuat - terlihat seperti -
kdubs

4

Mudah membatalkan semua parameter posisi dengan:

shift $#

Untuk menghapus 3 parameter posisi pertama:

shift 3

Shift "pops" dari parameter posisi N pertama. Dengan menggunakan $ # kita mendapatkan jumlah total parameter posisi. Perintah itu memunculkan semua parameter posisi.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.