Нет никакого смысла в ловле Ошибка .
Ошибки используются, чтобы указать, что что-то пошло действительно неправильно в Вашем приложении, и оно должно быть перезапущено.
, Например, одна распространенная ошибка
java.lang.OutOfMemoryError
существует НИЧТО , можно сделать, когда это происходит. Является уже слишком поздним, JVM исчерпала все свои опции получить больше памяти, но это невозможно.
См. этот другой ответ для понимания больше о три вида исключений .
$ t="define('DB_NAME', 'somedb');"
$ echo $t
define('DB_NAME', 'somedb');
$ eval "result=(${t##*,}"
$ echo $result
somedb
$
В этом есть bashism, и хотя он будет работать в большинстве нестандартных сред, чтобы придерживаться функций оболочки posix, используйте более громоздкую версию:
t="define('DB_NAME', 'somedb');"
r="${t##*,}"
r="${r%);*}"
r=`eval echo $r`
How about:
$ str="define('DB_NAME', 'somedb');"
$ php -r "$str echo DB_NAME;"
somedb
This might do what you want
sed -e "/DB_NAME/ s/define('DB_NAME', '\(.*\)');/\1/" /path/to/file/to/search.txt
что-то вроде этого:
MATCHED=$(sed -n "s/^define('DB_NAME', '\(.*\)')/\1/p" file.php)
if [[ -n ${MATCHED} ]];then
echo $MATCHED
else
echo "No match found"
fi
просто используйте конструкцию case / esac
mystring="define('DB_NAME', 'somedb');"
case $mystring in
*define*DB_NAME*)
dbname=${mystring%\'*}
dbname=${dname##*\'}
echo "$dbname" ;;
esac