Необходимо просто сделать это ради всех, у кого нет 22-дюймового широкоэкранного монитора. Лично, я работаю над 17 дюймами 4:3 монитор, и я нахожу что более, чем достаточно широкий. Однако у меня также есть 3 из тех мониторов, таким образом, у меня все еще есть много применимого экранного пространства.
Не только, что, но и человеческий глаз на самом деле имеет проблемы при чтении текста, если строки являются слишком длинными. Слишком легко потеряться, в которой строке Вы идете. Газеты составляют 17 дюймов через (или что-то как этот), но Вы не видите, что они пишут полностью через страницу, то же идет для журналов и других печатных объектов. На самом деле легче читать, если Вы сохраняете столбцы узкими.
#!/bin/bash
# define a array, space to separate every item
foo=(foo1 foo2)
# access
echo "${foo[1]}"
# add or changes
foo[0]=bar
foo[2]=cat
foo[1000]=also_OK
Вы можете прочитать "Advanced Bash-Scripting Guide" ABS
Вы можете попробовать следующий тип:
#!/bin/bash
declare -a arr
i=0
j=0
for dir in $(find /home/rmajeti/programs -type d)
do
arr[i]=$dir
i=$((i+1))
done
while [ $j -lt $i ]
do
echo ${arr[$j]}
j=$((j+1))
done
в bash, вы создаете массив, подобный этому
arr=(one two three)
, для вызова элементов
$ echo "${arr[0]}"
one
$ echo "${arr[2]}"
three
, чтобы запросить ввод пользователя, вы можете использовать read
read -p "Enter your choice: " choice
Оболочка Bourne и оболочка C не имеют массивов, IIRC.
В дополнение к тому, что говорили другие, в Bash вы можете получить количество элементов в массиве следующим образом:
elements=${#arrayname[@]}
и выполняйте операции в стиле среза:
arrayname=(apple banana cherry)
echo ${arrayname[@]:1} # yields "banana cherry"
echo ${arrayname[@]: -1} # yields "cherry"
echo ${arrayname[${#arrayname[@]}-1]} # yields "cherry"
echo ${arrayname[@]:0:2} # yields "apple banana"
echo ${arrayname[@]:1:1} # yields "banana"
Вы делаете это в ksh:
set -A array element1 element2 elementn
# view the first element
echo ${array[0]}
# Amount elements (You have to substitute 1)
echo ${#array[*]}
# show last element
echo ${array[ $(( ${#array[*]} - 1 )) ]}