什么<<<在shell脚本中意味着什么?

时间:2015-03-08 21:55:51

标签: shell

我的数组arr似乎在执行sorted_arr=($(sort<<<${arr[@]}))后排序。 <<<在这里意味着什么?

2 个答案:

答案 0 :(得分:1)

符号是Bash中的here string,也许是一些相关的shell(accordingmkelement0,“一些相关的shell”包括Korn shell kshzsh)。

但是,在更大的上下文中,与sort一起使用的符号是没有意义的,因为<<< ${arr[@]}中的值是单行数据。由于sort对数据行进行操作,并且单行数据已按排序顺序(相对于其他数据行为0),因此无需调用sort。试验:

arr=(3 2 1)
echo ${arr[@]}
sort <<< ${arr[@]}

输出结果为:

3 2 1
3 2 1

要对数组中的数据进行排序,您可能需要以下内容:

printf "%s\n" "${arr[@]}" | sort

输出:

1
2
3

根据需要。

答案 1 :(得分:0)

这是一个所谓的&#34; here string&#34;:

http://linux.die.net/abs-guide/x15683.html