Получение входных данных из одного аргумента и только одного аргумента - PullRequest
0 голосов
/ 20 ноября 2018

Это функция из моего сценария:

This is a function from my script

Это просто функция из сценария, который я пишу.По сути, я пытаюсь заставить пользователя ввести только один аргумент, если он больше одного, он должен вывести ошибку, и если у него нет аргумента, который также является ошибкой.Когда я запускаю скрипт, я получаю:

синтаксическая ошибка в elif [$ # -ne 1];затем] строка

1 Ответ

0 голосов
/ 20 ноября 2018

Как я уже говорил, в вашем коде отсутствует первый знак if, а -ne должен быть -eq. Вот рабочий код и набор тестовых случаев:

$ cat student_check.sh
Student_Check()  {
  if [ $# -eq 0 ] ;  then 
    echo "No file specified"
  elif [ $# -eq 1 ] ; then
    echo success
  else
    echo "Invalid input"
    exit
  fi
}

echo Test 0 
Student_Check
echo Test 1 
Student_Check 1 
echo Test 2 
Student_Check 1 2


$ ./student_check.sh
Test 0
No file specified
Test 1
success
Test 2
Invalid input
...