Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 是否可以通过索引从字符串变量中获取元素?_Bash - Fatal编程技术网

Bash 是否可以通过索引从字符串变量中获取元素?

Bash 是否可以通过索引从字符串变量中获取元素?,bash,Bash,如果我有一个变量,其中有多个由空格分隔的字符串元素,那么可以通过提供索引来获取元素吗?您可以对数组执行类似的操作吗 my_var="string1 string2 string3 string4" echo $[my_var[3]] # this does not work 你用。。。数组 $ my_var=("string1" "string2" "string3" "string4") $ echo "${my_var[3]}" string4 但是,您可能会问,给定原始字符串,是否可以

如果我有一个变量,其中有多个由空格分隔的字符串元素,那么可以通过提供索引来获取元素吗?您可以对数组执行类似的操作吗

my_var="string1 string2 string3 string4"
echo $[my_var[3]] # this does not work
你用。。。数组

$ my_var=("string1" "string2" "string3" "string4")
$ echo "${my_var[3]}"
string4
但是,您可能会问,给定原始字符串,是否可以将其拆分为数组

$ read -a arr <<< "$my_var"

但一般来说,作为列表的字符串是脆弱的。

您可以使用
read
命令存储它,并适当设置输入字段分隔符。这与当前输入无关,因为默认的
IFS
处理单词之间的单个空白字符

IFS=' ' read -ra inputArray <<<"$my_var"

当你想要第三个单词时,你可以使用

cut -d" " -f3 <<< ${my_var}

cut-d”“-f3为此使用数组。
printf "%s\n" "${inputArray[0]}"
string1
cut -d" " -f3 <<< ${my_var}