Re: bash: проверить наличие файла где-нибудь в PATH
От: citrin Россия http://citrin.ru/
Дата: 06.07.11 11:20
Оценка: 1 (1) +1
Здравствуйте, ymax, Вы писали:

Y>Собственно сабж. Файл (конкретнее бинарник для запуска) может лежать как в текущей директории, так и быть установлен в системе.

Y>test -f не подходит, ибо проверяет только в ./


man which
bash: проверить наличие файла где-нибудь в PATH
От: ymax  
Дата: 06.07.11 11:03
Оценка:
Собственно сабж. Файл (конкретнее бинарник для запуска) может лежать как в текущей директории, так и быть установлен в системе.
test -f не подходит, ибо проверяет только в ./

Поиски в инете не дали результатов.
Re: bash: проверить наличие файла где-нибудь в PATH
От: Lucky Cat  
Дата: 06.07.11 11:14
Оценка:
Здравствуйте, ymax, Вы писали:

Y>Собственно сабж. Файл (конкретнее бинарник для запуска) может лежать как в текущей директории, так и быть установлен в системе.

Y>test -f не подходит, ибо проверяет только в ./

Y>Поиски в инете не дали результатов.


Используй find
http://linuxway.ru/pervye-shagi/poisk-fajlov-v-linux-ili-izuchaem-komandu-find/
Например так
find /mnt/raid -type d -print
или так
find . -perm 775 -print

Соответственно тип файла, маску разрешения и путь подставь свои.
Re[2]: bash: проверить наличие файла где-нибудь в PATH
От: Lucky Cat  
Дата: 06.07.11 11:16
Оценка:
Здравствуйте, Lucky Cat, Вы писали:

LC>Здравствуйте, ymax, Вы писали:


Y>>Собственно сабж. Файл (конкретнее бинарник для запуска) может лежать как в текущей директории, так и быть установлен в системе.

Y>>test -f не подходит, ибо проверяет только в ./

Y>>Поиски в инете не дали результатов.


LC>Используй find

LC>http://linuxway.ru/pervye-shagi/poisk-fajlov-v-linux-ili-izuchaem-komandu-find/
LC>Например так
LC>find /mnt/raid -type d -print
LC>или так
LC>find . -perm 775 -print

LC>Соответственно тип файла, маску разрешения и путь подставь свои.


Да, еще параметр -name с именем файла добавь.
Re: bash: проверить наличие файла где-нибудь в PATH
От: const_volatile  
Дата: 06.07.11 11:21
Оценка:
Здравствуйте, ymax, Вы писали:

Y>Собственно сабж. Файл (конкретнее бинарник для запуска) может лежать как в текущей директории, так и быть установлен в системе.

Y>test -f не подходит, ибо проверяет только в ./

which
Re[2]: bash: проверить наличие файла где-нибудь в PATH
От: ymax  
Дата: 06.07.11 11:27
Оценка:
Здравствуйте, Lucky Cat, Вы писали:

LC>Здравствуйте, ymax, Вы писали:


Y>>Собственно сабж. Файл (конкретнее бинарник для запуска) может лежать как в текущей директории, так и быть установлен в системе.

Y>>test -f не подходит, ибо проверяет только в ./

Y>>Поиски в инете не дали результатов.


LC>Используй find

LC>http://linuxway.ru/pervye-shagi/poisk-fajlov-v-linux-ili-izuchaem-komandu-find/
LC>Например так
LC>find /mnt/raid -type d -print
LC>или так
LC>find . -perm 775 -print

LC>Соответственно тип файла, маску разрешения и путь подставь свои.


find не подходит. Потому что я не знаю из какого пути искать, а поиск из / может выдать ненужные результаты.
Поясню на примере, что хочу сделать:
Есть программулина, скажем g++. При вызове скрипта я хочу проверить есть ли в системе g++ и если нет, то вывести сообщение с требованием установить.
То есть, в скрипте я запросто могу писать "g++ ..." и программа будет вызвана из некоторого места, прописанного в списке PATH.
Файл распространяется внутри компании, поэтому через dpkg проверить нельзя.
Re[3]: bash: проверить наличие файла где-нибудь в PATH
От: const_volatile  
Дата: 06.07.11 11:30
Оценка:
Здравствуйте, ymax, Вы писали:

Y>Есть программулина, скажем g++. При вызове скрипта я хочу проверить есть ли в системе g++ и если нет, то вывести сообщение с требованием установить.


g++ --version &>/dev/null || (echo please install g++; exit 1)
Re[2]: bash: проверить наличие файла где-нибудь в PATH
От: ymax  
Дата: 06.07.11 11:30
Оценка:
Здравствуйте, citrin, Вы писали:

C>Здравствуйте, ymax, Вы писали:


Y>>Собственно сабж. Файл (конкретнее бинарник для запуска) может лежать как в текущей директории, так и быть установлен в системе.

Y>>test -f не подходит, ибо проверяет только в ./


C>
C>man which
C>

спасибо. то что надо
Re[2]: bash: проверить наличие файла где-нибудь в PATH
От: ymax  
Дата: 06.07.11 11:31
Оценка:
Здравствуйте, const_volatile, Вы писали:

_>Здравствуйте, ymax, Вы писали:


Y>>Собственно сабж. Файл (конкретнее бинарник для запуска) может лежать как в текущей директории, так и быть установлен в системе.

Y>>test -f не подходит, ибо проверяет только в ./

_>which

спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.