Мой любимый
find . -name <i>filename</i> | xargs grep -in '<i>pattern to search for</i>'
То, что делает вышеупомянутая команда, является находкой файл имени x и затем ищет, сказал, что файл для любого шаблона Вы ищете. Невероятно полезный, если Вы ищете конкретный бит кода в файле, это находится где-нибудь в Ваших подкаталогах.
Необходимо использовать source
или eval
или порождать новую оболочку.
При выполнении сценария оболочки, новая дочерняя оболочка порождена. Эта дочерняя оболочка выполнит команды сценария. Родительская среда оболочки останется нетронутой чем-либо, происходит в дочерней оболочке.
Существует много различных методов для управления этой ситуацией:
Подготовьте исходный файл файла containg список команд к source
в текущей оболочке:
export JAVA_HOME=/cygdrive/c/dev/Java/jdk1.5.0_22
export PATH=$JAVA_HOME/bin:$PATH
и затем получите его
source sourcefile
обратите внимание, что нет никакой потребности в sha-ударе при начинании исходного файла, но это будет работать с ним.
Подготовьте сценарий evalfile.sh, который печатает команду для установки среды:
#!/bin/sh
echo "export JAVA_HOME=/cygdrive/c/dev/Java/jdk1.5.0_22"
echo "export PATH=$JAVA_HOME/bin:$PATH"
и затем eval
uate это:
eval `evalfile.sh`
Настройте и выполните новую оболочку:
#!/bin/sh
export JAVA_HOME=/cygdrive/c/dev/Java/jdk1.5.0_22
export PATH=$JAVA_HOME/bin:$PATH
exec /bin/bash
обратите внимание на это, когда Вы введете exit
в этой оболочке Вы возвратитесь к родительской.
Вставьте псевдоним Ваш ~/.bashrc
:
alias prepare_environ='export JAVA_HOME=/cygdrive/c/dev/Java/jdk1.5.0_22; export PATH=$JAVA_HOME/bin:$PATH;'
и назовите его при необходимости:
prepare_environ
Вы могли сделать это при помощи встроенного источника:
. script_name
Некоторые оболочки обеспечивают псевдоним, названный источником:
source script_name
source
работы только дляbash
. Вывод дляksh
:/bin/ksh: source: not found
, дляsh
:sh: 0: source: not found
. Ответ ниже нужно рассмотреть для этих оболочек. – Danny Lo 08.04.2015, 12:19bash
центральный. – andcoz 08.04.2015, 16:29