В ударе, как я могу распечатать первые n элементы списка?

Полный общий шрифт для .NET http://code.google.com/p/uabcl/

10
задан Frank 20 May 2009 в 00:16
поделиться

4 ответа

FILES=(*)
echo "${FILES[@]:0:10}"

Должны работать правильно, даже если есть являются пробелами в именах файлов.

FILES = $ (ls) создает строковую переменную. FILES = (*) создает массив. На этой странице вы найдете больше примеров использования массивов в bash . (спасибо lhunath)

25
ответ дан 3 December 2019 в 13:51
поделиться

для интерактивного выполнения:

установите $ FILES && eval eval echo \\\ $ {1..10}

, чтобы запустить его как сценарий, создать foo.sh с содержимым

N = $ 1; сдвиг; eval eval echo \\\ $ {1 .. $ N}

и запустите его как

bash foo.sh 10 $ FILES

1
ответ дан 3 December 2019 в 13:51
поделиться
echo $FILES | awk '{for (i = 1; i <= 10; i++) {print $i}}'

Edit: AAh, пропустил ваш комментарий о том, что они вам нужны в одной строке ...

echo $FILES | awk '{for (i = 1; i <= 10; i++) {printf "%s ", $i}}'

Это делает.

2
ответ дан 3 December 2019 в 13:51
поделиться
FILES=$(ls)
echo $FILES | fmt -1 | head -10
0
ответ дан 3 December 2019 в 13:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: