Pisałem następujące linie dostać ostatni znak łańcucha:Jak uzyskać ostatni znak ciągu w powłoce?
str=$1
i=$((${#str}-1))
echo ${str:$i:1}
działa dla abcd/
:
$ bash last_ch.sh abcd/
/
To nie działa dla abcd*
:
$ bash last_ch.sh abcd*
array.sh assign.sh date.sh dict.sh full_path.sh last_ch.sh
To wyświetla listę plików w bieżącym folderze..
BTW, negatywne wskaźniki liczyć z prawej strony, więc ' "$ {1: -1}"' wystarczy. – choroba
Należy odpowiedzieć jako formalne rozwiązanie, a nie tutaj w komentarzach. – BMW
FYI: możesz również zrobić to w "jednolinijkowym" jako 'echo" $ {str: $ (($ {# str} -1)): 1} "'. Pozwala to na zmianę zwracanych znaków powrotu. Ta praca dla mnie w bash v4.1.0 (1) – SaxDaddy