Я написал следующие строки, чтобы получить последний символ строки:Как получить последний символ строки в оболочке?
str=$1
i=$((${#str}-1))
echo ${str:$i:1}
Он работает на abcd/
:
$ bash last_ch.sh abcd/
/
Это не работает для abcd*
:
$ bash last_ch.sh abcd*
array.sh assign.sh date.sh dict.sh full_path.sh last_ch.sh
В нем перечислены файлы в текущей папке..
BTW, подсчитывать отрицательные индексы справа, так ' "$ {1: -1}"' достаточно. – choroba
Вы должны ответить как официальное решение, а не в комментариях. – BMW
FYI: вы также можете сделать это в «одном слое» как «echo» $ {str: $ (($ {# str} -1)): 1} "'. Это позволяет также изменять возвращаемые символы. Эта работа для меня в bash v4.1.0 (1) – SaxDaddy