Сценарий BASH - Как получить Bash, чтобы проверить местоположение файла? - PullRequest
1 голос
/ 04 сентября 2010

Здравствуйте, я хочу, чтобы мой bash-скрипт обнаружил, где установлен php - он будет использоваться на разных серверах linux, и некоторые из них не смогут использовать команду which.В любом случае мне нужна помощь с этой второй строкой:

#!/bin/bash
if (php is located in /usr/bin/php); then
    PHP = /usr/bin/php
else
    PHP = /usr/local/zend/bin/php
fi
$PHP script.php

Ответы [ 5 ]

4 голосов
/ 04 сентября 2010

Используйте это:

`which php`

Но вот что I сделает:

#!/bin/env php
<?php

require 'script.php';
2 голосов
/ 04 сентября 2010

Bash имеет команду type.

type -p php

даст вам местоположение исполняемого файла на основе вашего $PATH.

Вокруг ваших знаков равенства есть пробелы, которые не позволяет Bash. Вот как должна выглядеть ваша команда:

PHP=$(type -p php) 

или вы можете выполнить его напрямую:

$(type -p php) script.php
1 голос
/ 04 сентября 2010

Попробуйте это:

if [ -e /usr/bin/php ]; then
0 голосов
/ 04 сентября 2010

Для короткого кода вы можете использовать: && и ||

[ -x /usr/bin/php ] && PHP=/usr/bin/php || PHP=/usr/local/zend/bin/php

КСТАТИ -x вернуть true, если файл исполняемый -e вернуть true, если файл существует

0 голосов
/ 04 сентября 2010

где php находит его

...