2015-03-08 2 views

ответ

1

нотация является here string в Bash и, возможно, некоторые родственные оболочки (according к mkelement0 «некоторые родственные оболочки» включает как Korn оболочки , ksh и zsh).

Однако в более широком контексте обозначения, используемые с sort, бессмысленны, поскольку значение в <<< ${arr[@]} является отдельной строкой данных. Поскольку sort работает в строках данных, и одна строка данных уже находится в отсортированном порядке (относительно нулей других строк данных), нет смысла ссылаться на него sort. Для эксперимента:

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

Выход:

3 2 1 
3 2 1 

Для сортировки данных в массиве, вы, вероятно, нужно что-то вроде:

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

, который выводит:

1 
2 
3 

по желанию.

+0

Две другие оболочки, которые поддерживают '<<<', являются 'ksh' и' zsh'. Поскольку «который, следовательно, уже отсортирован», может быть запутанным: 'sort' работает на _lines_ (или его частях), поэтому по определению нечего сортировать, если весь вход является линией _single_. – mklement0

Смежные вопросы