#/bin/bash
while :; do
echo -e '\a'
sleep 1
done
Почему не работает?
Каждую секунду выдает сообщение ~...команда не найдена
Помогите разобраться с Солярисом!
#/bin/bashoO [console]whereis bash[/console]
#/bin/bash
#!/bin/bash
Как минимум пропущен «!».
А команда работает?
while :; do echo -e '\a'; sleep 1; doneПопробовал выполнить этот скрипт на соляре:
[console]bash-3.00$ sh adf
adf: !#/bin/bash: not found
-e \a
-e \a
-e \a
-e \a
-e \a
-e \a
-e \a
-e \a
-e \a
-e \a
[/console]
#!/bin/bash
Попробовал выполнить этот скрипт на соляре:
Покажите полностью «этот» скрипт. И если можно, хотелось бы увидеть man echo, разумеется, в Solaris.
Не обязательно в солярке баш располагается именно по этому пути. Например в FreeBSD [console]whereis bash#!/bin/bash
bash: /usr/local/bin/bash /usr/local/man/man1/bash.1.gz /usr/ports/shells/bash
[/console]
Не обязательно в солярке баш располагается именно по этому пути.
Имелся ввиду не путь, важнее было указание использовать «!»
Не берусь утверждать на 100%, но, помнится мне, в команде echo в Solaris опция -e не используется.
в команде echo в Solaris опция -e не используется.
Совершенно верно.
Уточнил:
#!/bin/bash
while :; do
if [условие]; then
echo -e '\a'
sleep 1
done
Выдает сообщение, что команда не найдена в тот момент, когда выполняется условие (правильно), т.е. не найдена команда echo..., когда отдельно набираю в терминале echo -e '\a' писк срабатывает.
if [условие]; then
А где «fi» в конце условного оператора?
Попробуйте написать полный путь к команде echo.
Заработало! Всем спасибо. Ошибка была в условном выражении!
Привожу код работающего сигнализатора.
#!/bin/bash
function zvonok() {
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do
echo -en '\a'
done
}
while :; do
SEC = `date + %S`
MIN = `date + %M`
HOUR = `date + %H`
if [ "$MIN" -eq "00" ] && [ "$SEC" -eq "01" ] #условное выражение упростил
then
zvonok
fi
sleep 1
done
Может быть кто посоветует, как усовершенствовать звуковой сигнал.