Câu trả lời:
không có khoảng cách giữa dấu bằng
$ List="abcd 1234 jvm something"
$ set -- $List
$ echo $2
1234
Một số cách khác, mặc dù không hiệu quả như sử dụng nội bộ của 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
chia rẽ $something
tại $IFS
nhân vật (bởi không gian mặc định) và chuyển nhượng các phần chia cho các biến vị trí $1
, $2
...
Chỉ để bổ sung câu trả lời của ghostdog: bạn cũng có thể đặt $List
các phần tử của một mảng và truy cập phần tử danh sách cụ thể từ đó
List="abcd 1234 jvm something"
arr=($List)
echo ${arr[1]}
Lưu ý rằng các chỉ số mảng được tính 0,1,2, ....
Điều này có lợi thế là không gây ô nhiễm môi trường shell với quá nhiều biến mới.
echo
: arr=($List)