Автор Тема: Непонятки с bash  (Прочитано 1359 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Fieryx

Непонятки с bash
« : 11 Ноября 2012, 00:06:37 »
Доброго времени суток! Только начал осваивать bash и возникла такая ситуация.
Есть скрипт вида

#!/bin/bash
ls /bin/a*
ls /home
с именем pewpew.

chmod u+x писал.
Если я нахожусь в каталоге со скриптом и ввожу pewpew, то получаю сообщение, что такой команды нет.
Если пишу путь до файла ~/trash/pewpew, то скрипт работает.
Если я нахожусь в каталоге со скриптом и ввожу bash pewpew, то все тоже работает, но тут вроде бы все ясно. Предыдущие 2 строчки меня смущают, ведь разницы между ними я не вижу.

Разъясните, пожалуйста, чем ~/trash/pewpew отличается от pewpew, если я уже нахожусь в каталоге trash.
 

Оффлайн corner

Re: Непонятки с bash
« Ответ #1 : 11 Ноября 2012, 01:54:34 »
Грубо говоря, автоматически находятся и исполняются (если установлен флаг x) файлы, находящиеся в каталогах, определенных переменной среды $PATH. В остальных случаях нужно указывать путь, даже если пользователь находится в каталоге.
Поэтому не исполнится foo, но будет выполнен ./foo
 

Оффлайн Fieryx

Re: Непонятки с bash
« Ответ #2 : 11 Ноября 2012, 10:13:56 »
Спасибо за ответ! :)
 

Оффлайн xbsd

Re: Непонятки с bash
« Ответ #3 : 11 Ноября 2012, 20:48:09 »
Цитировать
Почему бы не запустить сценарий просто набрав название файла scriptname, если сценарий находится в текущем каталоге? Дело в том, что из соображений безопасности, путь к текущему каталогу "." не включен в переменную окружения $PATH. Поэтому необходимо явно указывать путь к текущему каталогу, в котором находится сценарий, т.е. ./scriptname.
отседа
 

Теги:
 

непонятки после перемещения файлов в mc

Автор ffrr

Ответов: 4
Просмотров: 1097
Последний ответ 05 Января 2016, 15:22:45
от ffrr
Непонятки с правами в Apache2

Автор Tammy

Ответов: 6
Просмотров: 1606
Последний ответ 10 Марта 2017, 03:52:04
от endru