LINUX.ORG.RU

Ожидается унарный оператор (Работа с календарем)

 


1

1

#!/bin/bash
function setloc
{
echo "Выберете язык"
echo "1 - русский язык"
echo "2 - немецкий язык"
echo "3 - французкий язык"
echo "4 - итальянский язык"
echo "5 - английский язык"
read loc
case $loc in
1) export LANG=ru_RU.UTF8;; 
2) export LANG=de_DE;;
3) export LANG=fr_FR;;
4) export LANG=it_IT;;
5) export LANG=en_US;;
*) echo "Неверное значние, должно быть от 1 до 5"
    setloc;;
esac
}
setloc

function setY
{
cyear=2019
echo "Введите год"
read Y
echo "Вы ввели $Y"
 if [ $Y -lt 1 ]
    then
     echo "Неверное значение"
     exit
    else
    if [ $Y -gt 9999 ]
     then 
     echo "Неверное значение"
     exit
    fi
fi
}
setY

function setCol
{
((setCol=Y % 10))
excl=0
cltext=0
White='\033[1;37m'
Blue='\033[1;34m'
Green='\033[0;32m'
Red='\033[0;31m'
Yellow='\033[1;33m'
NC='\033[0m'


case $setCol in
0) color="бел" ; cltext=1 ;;
1) color="бел" ; cltext=1 ;;
2) color="син" ; excl=1 ; cltext=2;;
3) color="син" ; excl=1 ; cltext=2;;
4) color="зелен" ; cltext=3 ;;
5) color="зелен" ; cltext=3 ;;
6) color="красн" ; cltext=4 ;;
7) color="красн" ; cltext=4 ;;
8) color="желт" ; cltext=5 ;;
9) color="желт" ; cltext=5 ;;
esac
}
setCol

function setanim
{
((anime=Y % 12))
case $anime in
0) anime="й обезьяны" ;;
1) anime="го петуха" ;;
2) anime="й собаки" ;;
3) anime="й свиньи" ;;
4) anime="й крысы" ;;
5) anime="го быка" ;;
6) anime="го тигра" ;;
7) anime="го кролика" ;;
8) anime="го дракона" ;;
9) anime="й змеи" ;;
10) anime="й лошади" ;;
11) anime="й овцы" ;;

esac


}
setanim

function setX
{

X=3
 case $X in
1)
echo "Введите месяц"
read Month
 if [ $Y -lt 1 ]
    then 
     echo "Неверное значение"
     exit
    else
    if [ $Month -gt 12 ]
     then 
     echo "Неверное значение"
     exit
    fi
 fi
cal $Month $Y 
export LANG=ru_RU.UTF8 ;; 
3)
echo "Введите месяц"
read Mon
 if [ $Y -lt 1 ]
    then 
     echo "Не правильное значение"
     exit
    else
    if [ $Mon -gt 12 ]
     then 
     echo "неверное значение"
     exit
    fi
 fi
cal -3 $Mon $Y 
export LANG=ru_RU.UTF8 ;; 
12)
cal $Y 
export LANG=ru_RU.UTF8 ;;
*) echo "Неверное значение" ;;
 esac
}
setX

function cltext
{
 case $cltext in
1)
    if [ $Y -eq $cyear ]
     then
      echo -e "Сейчас год $white $colorо$anime $NC" 
    fi 
    if [ $Y -lt $cyear ]
     then
    echo -e "Это был год $White $colorо$anime $NC" 
    fi
    if [ $Y -gt $year ] 
     then
    echo -e "Это будет год$White $colorо$anime $NC" 
    fi ;;
2)
 if [ $Y -eq $cyear ]
  then
  if [ $excl -eq 1 ]
   then 
    echo -e "Это год $Blue $colorе$anime $NC" 
   else
    echo -e "Это год $Blue $colorо$anime $NC" 
  fi 
 fi
 if [ $Y -lt $cyear ]
 then
  if [ $excl -eq 1 ]
   then 
    echo -e "Это был год $Blue $colorе$anime $NC" 
   else 
    echo -e "Это был год $Blue $colorо$anime $NC" 
  fi
 fi
 if [ $Y -gt $cyear ]
 then
  if [ $excl -eq 1 ]
   then 
    echo -e "Это будет год $Blue $colorе$anime $NC" 
   else 
    echo -e "Это будет год $Blue $colorо$anime $NC" 
  fi
 fi ;;
3)
 if [ $Y -eq $cyear ]
     then
      echo -e "Сейчас год $Green $colorо$anime $NC" 
    fi 
    if [ $Y -lt $cyear ]
     then
    echo -e "Это был год $Green $colorо$anime $NC" 
    fi
    if [ $Y -gt $cyear ]
    then
    echo -e "Это будет год $Green $colorо$anime $NC" 
    fi ;;
4)
if [ $Y -eq $cyear ]
     then
      echo -e "Сейчас год $Red $colorо$anime $NC" 
    fi 
if [ $Y -lt $cyear ]
     then
    echo -e "Это был год $Red $colorо$anime $NC" 
    fi
if [ $Y -gt $cyear ]
    then
    echo -e "Это будет год $Red $colorо$anime $NC" 
    fi ;;
5)
if [ $Y -eq $cyear ]
    then
      echo -e "Сейчас год $Yellow $colorо$anime $NC" 
    fi 
if [ $Y -lt $cyear ]
     then
    echo -e "Это был год $Yellow $colorо$anime $NC" 
    fi
if [ $Y -gt $cyear ]
     then
    echo -e "Это будет год $Yellow $colorо$anime $NC"
    fi ;;
esac
}
cltext

Это оригинальный код Вашего скрипта (вставили копипастой) или Вы его переписывали откуда-то (экран другого ноутбука, лист бумаги ...)? Много неточностей и описок в именах переменных // bash всё равно выполнит, но результат будет совсем не тот, что ожидается.

anymouze ★★
()
Ответ на: комментарий от abcdefgi921

Ошибка не воспроизводится.
Впрочем, если ты пытаешся запустить скрипт, полный башизмов и прочих не слишком приятных вещей как «sh script.sh» на основанной на дебиан системе, вместо того, чтобы выставить ему права на исполнение и запускать по-человечески, то может быть и не такое.

ABW ★★★★★
()
Ответ на: комментарий от abcdefgi921

скорее нет, чем да. могу накидать общих советов. но погружаться в этот код уже желания нет.

для начала я бы проверил все имена переменных, исправил неточности...

anymouze ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.