Я новичок в Linux, bash и так далее. У меня есть 2 проблемы (на данный момент...), и их нужно легко решить.
Все примеры кода являются.sh файлами и вызывается из терминала командой sh file.sh
Во-первых, почему я могу добавить первую строку, а не вторую? мне кажется, что такая же операция...
DIR=$HOME/dir
DIR2=$DIR/test.php
echo $DIR
echo $DIR2
дает мне этот результат:
/home/vm/dir
/test.phpdir
Вторая проблема. Я хочу вызвать php-интерпретатор из сценария bash.
#/home/vm/proj/test.php
<?php
echo __DIR__;
#home/vm/proj/script/script.sh
#! /bin/bash
PATH=$PATH:/$HOME/proj
php -f test.php
Но это всегда приводит к ошибке: невозможно найти файл...
Поэтому, пожалуйста, помогите noob и скажите мне, как исправлять мой код...
Я могу представить, что обе мои проблемы довольно просто исправить.
благодаря
РЕДАКТИРОВАТЬ:
Система: Виртуальная машина: Ubuntu 14.04.3 LTS, Trusty Tahr
Bash-версия: 4.3.11 (1) -release (x86_64-pc-linux-gnu)
Пытаться:
DIR2="$DIR/test.php"
Вы должны выполнить PHP в режиме CLI (даже в скрипте shell/bash), например:
php /path/to/script.php
BTW Я использую ту же настройку, что и вы :)
РЕДАКТИРОВАТЬ:
#! /bin/bash
PATH=/path
PATH2="$PATH/to"
PATH3=$PATH2/script.php
echo $PATH3
# Output: /path/to/script.php
EDIT2:
Не уверен, почему это не работает для вас, как должно.
См. Здесь для получения дополнительной информации о конкатенации переменных в bash:
Как конкатенировать строковые переменные в Bash?
См. Здесь возможную работу по этой проблеме: https://unix.stackexchange.com/questions/117467/how-to-permanently-set-environmental-variables
sh
иbash
не обязательно совпадают! Пожалуйста, прочитайте здесь .