Member 13038268 Ответов: 1

Не удалось запустить код


Я пытаюсь создать функцию, которая принимает имя в качестве аргумента(<username>_<num> и дает R +1 в качестве результата.( в Linux)
например, newfunc apple_1
apple_2

Что я уже пробовал:

function newfunc {
	INPUT=$1;
	NUMBER=$(echo INPUT | tr -dc '0-9');
	TEXT=$(echo INPUT | tr -dc '[:alpha:]');
	NUMBER=$((NUMBER+1));
	echo"${USERNAME}_${NUMBER}"
}
newfunc

[no name]

Возможно,Вам повезет больше, если вы пометите свой вопрос реальным языком программирования. Linux-это операционная система, а не язык программирования.

Patrice T

Что это за язык ?

1 Ответов

Рейтинг:
0

Peter Leow

Это скрипт оболочки Unix/linux, есть пара синтаксических и логических ошибок, проверьте это:

newfunc() {
   	INPUT=$1
   	echo $INPUT
	NUMBER=$(echo "${INPUT:$((${#INPUT}-1)):1}")
	echo ${NUMBER}
	TEXT=$(echo "${INPUT:$i:-1}")
	echo $TEXT
	NUMBER=$((NUMBER+1))
	echo "$TEXT${NUMBER}"
}

newfunc "apple_1"
На выходах:
apple_1
1
apple_
apple_2

Учить Функции Оболочки Unix[^]