LINUX.ORG.RU

bash

 


0

0

Решил написать скрипт на bash для запуска WPS office из терминала.

Написал такой код

#!/bin/bash
echo "Выбери запускаемый пакет"
echo "w - Writer; t - Spreadsheets; p - Presentation"
read Package # Package - переменная, определяющая название пакета
if ("$Package" == "w") 
then
	/usr/bin/wps # Если Package = w, то открывать WPS Writer
	exit
fi

if ("$Package" == "t")
then
	/usr/bin/et # Если Package = t, то открывать WPS Spreadsheets
	exit
fi
if ("$Package" == "p")
then
	/usr/bin/wpp # Если Package = p, то открывать WPS Presentation
	exit
fi
exit

Сама суть проблемы. Если я пишу w, то открывается wps writer как и должно быть, НО если я пишу t или p, то ничего не происходит и выводит такое сообщение

./WPS.sh: строка 8: t: команда не найдена
./WPS.sh: строка 14: t: команда не найдена
./WPS.sh: строка 20: t: команда не найдена
./WPS.sh: строка 8: p: команда не найдена
./WPS.sh: строка 14: p: команда не найдена
./WPS.sh: строка 20: p: команда не найдена

Подскажите, в чём я ошибся

case $Package in
    w) ... ;;
    t) ... ;;
    p) ... ;;
    *) echo "Net takogo varianta" ;;
esac
Niroday ()

потому что круглые скобки, читай man test и man bash

man bash раздел Compound Commands

(list) list is executed in a subshell environment

surefire ★★★ ()
Последнее исправление: surefire (всего исправлений: 1)

Это вообще не могло работать. Казалось, что работало, потому что по совпадению существует команда w, которую ты и вызывал в первом блоке if с аргументами "==" и "w".

legolegs ★★★★★ ()
Последнее исправление: legolegs (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.