Привет все я пытаюсь выполнить сценарий оболочки с оператором выбора
opt=$1
case $opt
in
u) function1 ;;
g) function2 ;;
*) exit ;;
esac
function1()
{
xyz commands
}
funciton2t()
{
xyz commands
}
Я получаю следующую ошибку:
function1: command not found
Когда Вы вызываете функцию, она должна быть определена и известна, когда Вы звоните function1
в этом как:
u) function1 ;;
Интерпретатор понятия не имеет, где эта функция, потому что это еще не видело его; так помещает Ваши функции выше case
предложение.
, Который устранил бы проблему.
@kashyap (и другие). Неясно мне, есть ли у Вас достаточно ответа для устранения проблемы?
я изменил Ваш код немного для реального наблюдения то, что происходит:
function1()
{
echo "I am function 1"
}
function2()
{
echo "I am function 2"
}
opt=$1
case $opt
in
u) function1 ;;
g) function2 ;;
*) echo "Nothing to do"
exit ;;
esac
я назвал файл dummyFunc , дал ему x-биты, и это результаты.
$ ./dummyFunc u
I am function 1
$ ./dummyFunc g
I am function 2
$ ./dummyFunc
Nothing to do
$
я надеюсь, что это помогает kashyap?
В противном случае показывают нам, как Ваш сценарий теперь похож, и добавьте вывод, который он генерирует.
у Вас есть 2 синтаксических ошибки:
я перед t и t позади 2:
funciton2t()
{
xyz commands
}