Berikut adalah daftar:
List = "abcd 1234 jvm something"
Bagaimana cara mendapatkan elemen kedua "1234" tanpa mengulang semua daftar?
tidak ada spasi di antara tanda sama dengan
$ List="abcd 1234 jvm something"
$ set -- $List
$ echo $2
1234
Beberapa cara lain, meski tidak seefisien menggunakan internal shell
$ echo $List | cut -d" " -f2
1234
$ echo $List | awk '{print $2}'
1234
$ echo $List | sed 's/^.[^ \t]* //;s/ .*//'
1234
$ echo $List | tr " " "\n"|sed -n '2p'
1234
set -- $something
perpecahan$something
di$IFS
karakter (dengan spasi default) dan penerima bagian split untuk variabel posisi$1
,$2
...Hanya untuk melengkapi jawaban ghostdog: Anda juga bisa memasukkan
$List
elemen ke dalam array dan mengakses elemen daftar tertentu dari sanaPerhatikan bahwa indeks array dihitung 0,1,2, ....
Ini memiliki keuntungan tidak mencemari lingkungan shell dengan terlalu banyak variabel baru.
sumber
echo
:arr=($List)