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
Сообщения: 3301
Откуда: Харьков
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
Сообщения: 3301
Откуда: Харьков
расширение файла значения не имеет, чем запускать система узнаёт из первой строчки файла, такой как #!/bin/sh
myscript.sh без пути будет искать в местах $PATH в которые home обычно не входит
поэтому раз скрипт лежит в /home а не в /bin и т.п. то нужно указывать к нему путь, полный или относительный типа ./

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

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

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


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

Зарегистрирован: Вт 25 апр, 2006 5:31 pm
Сообщения: 894
Код:
#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 часа


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

Зарегистрированные пользователи: нет зарегистрированных пользователей


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

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