Я работаю над скриптом, который поможет другим людям использовать менеджер пакетов apt. сценарий работал нормально, пока я не переместил его на флешку и не поставил на другой компьютер. ошибка, я не могу избавиться от того, является:while do done Синтаксическая ошибка
/bin/az.sh: строка 57: ошибка синтаксиса около неожиданной лексемы `сделано»
/bin/az.sh: строка 57: `сделано;»
здесь код из сценария:
#!/bin/bash
procid=$(lsof /var/lib/dpkg/lock > /var/log/az1; sed '1d' /var/log/az1 | awk '{print $2}')
#kill any process using apt manager
if [ "`lsof /var/lib/dpkg/lock`" = "" ]; then
echo "no conflicts"
else
figlet killed old process
kill -9 $procid
fi;
figlet updating package lists
#apt-get update > /var/log/azupdatelog
while [ $input != "q" ]; do
echo "(1) Find package by name"
echo "(2) Find package by description"
echo "(3) Install package"
echo "(4) Remove package"
echo "(5) Fix Dependencies"
echo "(6) Perform an upgade"
echo "(q) Quit "
read input
if [ $input = "1" ]; then
echo "enter package name"
read package
apt-cache show $package
elif [ $input = "2" ]; then
echo "enter search keyword"
read package
apt-cache search $package
elif [ $input = "3" ]; then
apt-get build-dep $package
apt-get install $package -y > /var/log/installlog
exitstatus=$(echo $?)
if [ $exitstatus = "0" ]; then
figlet Installation Succesful
elif [ $exitstatus = "1" ]; then
figlet Failure check /var/log/installlog
figlet check now?
echo "y or n"
read input2
if [ $input2 = "y"]; then
cat /var/log/installlog
fi;
elif [ $input = "4" ]; then
echo "enter package name"
read package
apt-get remove $package
elif [ $input = "5" ]; then
echo "enter package name"
read package
apt-get build-dep $package
elif [ $input = "6" ]; then
echo ""
apt-get upgrade
else
echo "oops check your input"
fi;
done
Иногда проблема заключается в возврате каретки, который проскальзывает при переходе через окна ... по крайней мере, bash не справляется с этим. –
Я передал его из linux в linux –
, вам не хватает пробела между квадратными скобками для 'if' на строке 29. Также вам кажется, что у вас отсутствует хотя бы один' fi' для вас 'ifs' – 123