Вы можете довольно легко делать то, что вы пытаетесь, используя bash параметр-расширение для строковых индексов вместе с арифметическим оператором POSIX. Например, вы можете сделать:
#!/bin/bash
[ -z "$1" ] && { ## validate at least 1 argument provided
printf "error: please provide a number.\n" >&2
exit 1
}
[[ $1 =~ [^0-9][^0-9]* ]] && { ## validate all digits in argument
printf "error: input contains non-digit characters.\n" >&2
exit 1
}
suffix=${1:1} ## take all character past 1st as suffix
suffix=$((suffix + 1)) ## increment suffix by 1
result=${1:0:1}$suffix ## append suffent to orginal 1st character
echo "$result" ## output
exit 0
, который оставит 1-й символ в одиночку при увеличении оставшихся символов на 1
и последующем объединении с исходной 1-й цифрой, подтверждая, что ввод состоит только из цифр, например,
Пример использования / Вывод
$ bash prefixsuffix.sh
error: please provide a number.
$ bash prefixsuffix.sh 38a900
error: input contains non-digit characters.
$ bash prefixsuffix.sh 38900
38901
$ bash prefixsuffix.sh 39999
310000
Посмотрите вещи и дайте мне знать, если это то, что вы хотели.