用空格分隔的bash字符串到数组

时间:2011-06-24 04:55:25

标签: arrays string bash ubuntu ubuntu-10.04

我想读取一个值并将其与空格分开,然后根据数组的部分进行处理。更确切地说,如果第一个(如果假跳过休息)3元素的语句将使用另一个程序(查找数据库)从一个单词更改为一个数字,那么第四个和最后一个将检查上面是否有非数字或数字64,如果没有那么它会将它们全部重新组合在一起(我知道该怎么做)然后继续。我已经在谷歌的多个网站上工作了3个多小时。

vzybilly@vzybilly-laptop:~/Desktop$ cat ./test.sh
#!/bin/bash
read -p "cmd: " IN

#OIFS=$IFS
#IFS=';'
#arr2=$IN

#a=$(echo $IN | tr " " "\n")
a=$(echo "$IN")
for i in $(seq 0 $((4 - 1))); do
    echo "a[$i] = \"${a[$i]}\""
done

#IFS=$OIFS

exit 0
vzybilly@vzybilly-laptop:~/Desktop$ ./test.sh
cmd: cmd pers item num
a[0] = "cmd pers item num"
a[1] = ""
a[2] = ""
a[3] = ""

我想要的是什么:

vzybilly@vzybilly-laptop:~/Desktop$ ./test.sh
cmd: cmd pers item num
a[0] = "cmd"
a[1] = "pers"
a[2] = "item"
a[3] = "num"

1 个答案:

答案 0 :(得分:5)

而不是

a=$(echo "$IN")

使用

a=($IN)