Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Case и скрипт  (Прочитано 979 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ildar32

  • Автор темы
  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Case и скрипт
« : 28 Января 2018, 19:52:09 »
Доброго дня выдаёт ошибку что не так?#!/bin/bash
var=$1
case $1 in
1)
$1=0 echo"No students";;
2)
$1=1 echo "1 student";;
3)
$1=2 echo "2 students";;
4)
$1=3 echo "3 students";;
5)
$1=4 echo "4 students";;
*)
$1>4 echo "A lot of students"
esac
Ошибкаbi@ubuntu:~$./student.sh 1
./student.sh: строка 7: 1=0: команда не найдена
« Последнее редактирование: 22 Февраля 2020, 08:34:45 от zg_nico »

Оффлайн zg_nico

  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3512
  • Nil mortalibus arduum est
    • Просмотр профиля
Re: Case и скрипт
« Ответ #1 : 28 Января 2018, 20:01:57 »
что не так
Многое. Начиная от написания аргумента слитно с командой, отсутствия символов комментария там, где подразумевается комментарий, и заканчивая неверной расстановкой позиций case (на 1 больше везде). Вот корректный:
#!/bin/bash
var=$1
case $1 in
0)
#$1=0  - это же ведь комментарии, верно?! Тогда где перед ними символ решетки в Вашем исходнике? Вот так они не интерпретируются. А у Вас последний case вообще пытался аргумент $1 в файл с именем 4 в директории скрипта сохранить. И сохранял...
echo "No students";;
1)
#$1=1
echo "1 student";;
2)
#$1=2
echo "2 students";;
3)
#$1=3
echo "3 students";;
4)
#$1=4
echo "4 students";;
*)
#$1>4
echo "A lot of students"
esac
Его примеры исполнения:
>>>> ./2.sh 4
4 students
>>>> ./2.sh 4
4 students
>>>> ./2.sh 55
A lot of students
« Последнее редактирование: 28 Января 2018, 20:04:24 от zg_nico »
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

Оффлайн ildar32

  • Автор темы
  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Re: Case и скрипт
« Ответ #2 : 28 Января 2018, 20:05:37 »
Вот так вроде
#!/bin/bash
case $1 in
0)
echo"No students";;
1)
echo "1 student";;
2)
echo "2 students";;
3)
echo "3 students";;
4)
echo "4 students";;
*)
$1>4 echo "A lot of students"
esac

Пользователь добавил сообщение 28 Января 2018, 20:14:09:
Не так а вот так только ошибка, что не так???

#!/bin/bash
  if [[ $1=0 ]]
   then
echo "No students"
   else
     case $1 in
1)
echo "1 student";;
2)
echo "2 students";;
3)
echo "3 students";;
4)
echo "4 students";;
*)
echo "A lot of students"
      esac
   fi

Пользователь добавил сообщение 28 Января 2018, 20:17:27:
zg_nico, Спасибо ваш вариант подходит.
« Последнее редактирование: 28 Января 2018, 20:17:27 от ildar32 »

Оффлайн zg_nico

  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3512
  • Nil mortalibus arduum est
    • Просмотр профиля
Re: Case и скрипт
« Ответ #3 : 28 Января 2018, 20:45:08 »
ildar32, Вы пытаетесь самостоятельно bash изучать, или некие контрольные делаете?
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

Оффлайн ildar32

  • Автор темы
  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Re: Case и скрипт
« Ответ #4 : 28 Января 2018, 22:05:38 »
ildar32, Вы пытаетесь самостоятельно bash изучать, или некие контрольные делаете?

Тесты на stepik.org прохожу. И вам советую сертификат дают.

Оффлайн zg_nico

  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3512
  • Nil mortalibus arduum est
    • Просмотр профиля
Re: Case и скрипт
« Ответ #5 : 28 Января 2018, 22:22:35 »
сертификат дают
за совет спасибо.
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

toZen

  • Гость
Re: Case и скрипт
« Ответ #6 : 28 Января 2018, 22:30:41 »
Тесты на stepik.org прохожу.
Какое это имеет отношение к форуму Ubuntu Ru?
Никто не обязан делать за Вас домашние задания.
Следующий раз будут проценты.
Закрыто.

 

Страница сгенерирована за 0.016 секунд. Запросов: 20.