Adapun ./script.sh arg1 [arg2 arg3 ...]
, argumen baris perintah arg1
, arg2
, ... bisa didapat oleh $1
, $2
, ... Tapi jumlah argumen yang tidak tetap.
Dalam skrip shell, saya ingin meneruskan argumen mulai dari arg2
ke program,
#/bin/bash
...
/path/to/a/program [I want to pass arg2 arg3 ... to the program]
...
Bagaimana saya bisa melakukannya karena mungkin ada satu atau lebih argumen?
$@
?$@
memberi tahu shell untuk memberi tanda kutip ganda pada setiap parameter (sesuatu yang menyenangkan dilakukan jika parameter tersebut mengandung karakter yang menarik seperti tanda kurung atau tanda bintang). Jika Anda tidak peduli tentang itu, sebuah$*
karya sederhana ...Anda dapat mengiris parameter posisi menggunakan ekspansi parameter. Sintaksnya adalah:
Jika
length
dihilangkan itu diambil sampai nilai terakhir.Saat Anda beralih dari argumen kedua ke argumen terakhir, Anda perlu:
Contoh:
sumber