Вы можете создать псевдоним или функцию в файле .bashrc - например:
alias lcd="cd $( ls -1 | tail -1 )"
OR
lcd() { cd $( ls -1 | tail -1 ) ; }
Вы можете использовать ответы на недавние вопросы, например
$ ARR=(h4 q2 s7 r1 h3)
$ SA=( $(IFS=$'\n'; echo "${ARR[*]}" | sort -k1.2n) )
$ [ "${ARR[*]}" == "${SA[*]}" ] && echo in seq || echo out of seq
out of seq
Числовая цифра n
sort
позволяет использовать многозначные числа, начиная со второго символа.
РЕДАКТИРОВАТЬ:или, еще короче,
( IFS=$'\n'; [ "${ARR[*]}" == "$(sort -k1.2n <<< "${ARR[*]}" )" ] ) && echo in seq || echo out of seq
Приведенный ниже код инициализирует «последнюю» переменную, затем перебирает массив (, начиная со второго элемента ), и проверяет, меньше ли этот элемент, чем предыдущий; если это так, код отображает сообщение об ошибке и останавливает цикл.
lastone=${array[0]:1}
for((i=1; i < ${#array[@]}; i++))
do
if (( "${array[i]:1}" < "$lastone" ))
then
echo failure
break
fi
lastone=${array[i]:1}
done
В качестве альтернативы, попросите bash напечатать каждый элемент в отдельной строке, удаляя первый/начальный символ, затем передать это в sort
и спросить, отсортирован ли ввод:
if printf '%d\n' "${array[@]/#?/}" | sort -cn 2>/dev/null
then
echo is sorted
else
echo is not sorted
fi