BSDPORTAL.RU

На этом сайте обсуждаются вопросы использования ОС FreeBSD
 Портал  •  Статьи  •  Форум  •  Wiki  •  Поиск  •  FAQ  •  Обои  •   Официальная документация  •  Новые темы 

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Не работают самописные скрипты
СообщениеДобавлено: Ср 15 май, 2019 6:47 am 
Не в сети

Зарегистрирован: Вт 23 апр, 2019 7:49 am
Сообщения: 30
Добрый день, уважаемые коллеги!

ОС FreeBSD 12. Пишу скрипт test.sh, содержащий всего одну строку (или несколько):
Код:
#!/bin/sh

При попытке его исполнить, пишет:
Код:
#/usr/home/scripts/test.sh
test.sh: Command not found.


Для проверки делаю следующее копирую скрипт, например, /etc/rc.d/nfsd в каталог, где я создаю скрипты. Запускаю его
Код:
#/usr/home/scripts/nfsd
выходит стандартное сообщение, что параметры нужно указать..., т.е. скрипт отработал.

Переименовываю этот файл в test.sh (или копирую его в файл test.sh или файл без расширения). Выполняю его:
Код:
#/usr/home/scripts/test.sh

Пишет:
Код:
test.sh: Command not found.


Если файл обратно переименовать в nfsd и выполнить, все нормально выполняется.
Биты исполнения установлены у всех файлов.

Если я напишу:
Код:
sh /usr/home/scripts/test.sh
все выполняется, но мне то надо чтобы я написал:
Код:
/usr/home/scripts/test.sh

и все выполнилось. По моему если к sh передать файл, то он может и не иметь бит исполнения и он его запустит.

Спасибо за любые подсказки, коллеги!!!
С/У Слава


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не работают самописные скрипты
СообщениеДобавлено: Ср 15 май, 2019 7:42 am 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: Вт 10 авг, 2004 2:24 am
Сообщения: 3304
Откуда: Харьков
lexx84 писал(а):
Биты исполнения установлены у всех файлов.
точно?

тогда остаётся сам test.sh , например опечатка в #!/bin/sh или ещё чего подобное
ну или sh нету в /bin


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не работают самописные скрипты
СообщениеДобавлено: Ср 15 май, 2019 9:51 am 
Не в сети

Зарегистрирован: Вт 23 апр, 2019 7:49 am
Сообщения: 30
Добрый день, grayich!!!
Отвечаю последовательно на вопросы:
Бит запуска установлен:
Код:
total 28
-r-xr-xr-x  1 root  wheel  1072 May 15 06:29 lts*
-rwxr-xr-x  1 root  wheel    11 May 15 07:11 myscript.sh*
-r-xr-xr-x  1 root  wheel  1072 May 15 05:11 nfsd*
-rwxr-xr-x  1 root  wheel    93 May 15 04:59 preexec_echo.sh*
-r-xr-xr-x  1 root  wheel  1072 May 15 07:28 sctiptCopy_nfsd*
-rwxr-xr-x  1 root  wheel    90 May 15 04:27 template.sh*
-rw-r--rwx  1 root  wheel  1072 May 15 05:13 test.sh*

В /bin есть sh:
Код:
ls /bin/
...
setfacl
sh
sleep
stty
...


А теперь что еще я обнаружил:
1) Копирую файл, например, /etc/rc.d/nfsd (в этом файле есть строка #!/bin/sh) в /usr/home/scripts/
2) Запускаю /usr/home/scripts/nfsd <- работает
3) Копирую этот же файл в файл scriptCopy_nfsd
Код:
#cd /usr/home/scripts/
#copy -v ./nfsd ./scriptCopy_nfsd
nfsd -> sctiptCopy_nfsd


4) Запускаю /usr/home/scripts/scriptCopy_nfsd <- работает
5) Если поступить так:
Код:
#cd /usr/home/scripts
#sctiptCopy_nfsd
sctiptCopy_nfsd: Command not found


Я не из внимательных и могу допустить опечатку. Поэтому я решил показать на примере готовых скриптов не мной написанных.
И еще вопрос? Может подскажете. Если я выполняю /usr/home/scripts/nfsd - появляется ответ скрипта на консоли, где я работаю, но если я делаю следующее:
Код:
#/usr/home/scripts/nfsd > /mnt/flash/otvetScripta
#cat /mnt/flash/otvetScripta
ни чего нет, но файл создался.

^^^^^Я ожидаю здесь (в файле) увидеть ответ скрипта, то что вижу на консоли.
Если выполнить:
Код:
#/usr/home/scripts/nfsd
#echo $?
1

Т.е. код возврата "1" значит должно что-то записаться в файл. Как я понимаю, конечно.
На всякий случай я решил поступить так:
Код:
#/usr/home/scripts/nfsd > /mnt/flash/otvetScripta 2>&1
#cat /mnt/flash/otvetScripta
ни чего нет, но файл создался.


Я забыл упомянуть, я работаю на виртуальной машине VMWare может быть дело в этом?
А теперь еще одно интересное наблюдение, которое в буквальном смысле приводит к волне противоречий. Смотрите! Если я перехожу в каталог и запускаю скрипты 1):
Код:
#cd /usr/home/scripts
# myscript.sh
 myscript.sh: Command not found

2) в этом же каталоге делаю почти тоже самое:
Код:
#cd /usr/home/scripts
# ./myscript.sh
все работает

Т.е. добавляю перед именем "./" все запускается и работает и кстати без разницы какого расширения файл... Если я укажу полный путь к скрипту /usr/home/scripts/myscript, то все работает.

Уважаемые товарищи, извиняюсь за свою не внимательность....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не работают самописные скрипты
СообщениеДобавлено: Ср 15 май, 2019 6:23 pm 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: Вт 10 авг, 2004 2:24 am
Сообщения: 3304
Откуда: Харьков
расширение файла значения не имеет, чем запускать система узнаёт из первой строчки файла, такой как #!/bin/sh
myscript.sh без пути будет искать в местах $PATH в которые home обычно не входит
поэтому раз скрипт лежит в /home а не в /bin и т.п. то нужно указывать к нему путь, полный или относительный типа ./

c test.sh непонятно что, 99% опечатался или типа того

по поводу ответа скрипта, ничего не понял, какое содержимое скрипта и что ты от него хочешь получить?

виртуальная машина тут не причём


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не работают самописные скрипты
СообщениеДобавлено: Ср 15 май, 2019 8:41 pm 
Не в сети

Зарегистрирован: Вт 25 апр, 2006 5:31 pm
Сообщения: 896
Код:
#cd /usr/home/scripts
# myscript.sh
 myscript.sh: Command not found

издеваетесь?
Код:
# ./myscript.sh


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не работают самописные скрипты
СообщениеДобавлено: Чт 16 май, 2019 9:22 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн 26 мар, 2007 6:04 pm
Сообщения: 1129
Откуда: Kiev
Насчёт test.sh - так там бит "x" установлен только для other, а он запускает от root'a, и ОС правильно говорит, что нельзя выполнить.

_________________
"Винда съела дрова и резет здесь не фурычит"
"Все говорят, что у меня /dev/hands кривой и я всё делаю через /dev/ass. А у меня этих файлов вообще нет!"


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Зарегистрированные пользователи: Bing [Bot], Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
Яндекс.Метрика