Я собираюсь принять "своей машиной, входят в разрушенное состояние", Вы подразумеваете, что независимо от того, что задача поднимает дисплей, на который Вы смотрите, прекратил отвечать. (В целом, когда что-то отказывает на Linux, только та вещь катастрофические отказы, и все остальное продолжает бежать. Очень редко, чтобы вся машина остановилась.)
Когда все остальное перестало работать, мне нравится переключаться назад на стандартный терминальный интерфейс (текстовый режим в противоположность GUI) путем удара CTRL+Alt+F1. Это поднимает приглашение ко входу в систему. Я затем вхожу в систему и ввожу команду top
видеть, что работает. Процесс наверху списка является тем с помощью большую часть ЦП и обычно проблему, таким образом, я уничтожаю его путем нажатия k и введения идентификатора процесса (числа слева). Я затем возвращаюсь к GUI путем нажатия CTRL+Alt+F7 (или иногда CTRL+Alt+F8, один из тех двух будет работать, но он мог бы измениться). Если вещи теперь работают, я продвигаюсь, в противном случае я попробую еще раз или могу просто вызвать перезагрузку.
Заключение в кавычки: Короче говоря, переменные не заменяются своими значениями внутри 'single-quoted'
строки (иначе. "подстановка переменных"). Необходимо использовать любой из "double quotes"
, $'dollar quotes'
, или
<<EOF
here strings
EOF
Поскольку l0b0 указал, Вы не можете использовать одинарные кавычки здесь. Кроме этого, в Вашем примере Вы не должны использовать sed
также. Это выглядит намного более чистым с grep
:
get_parameter ()
{
echo "$query" | grep -o "${1}=[^&]*" | sed "s/%20/ /g"
}
Без echo
:
get_parameter ()
{
<<< "$query" grep -o "${1}=[^&]*" | sed "s/%20/ /g"
}
И наконец, без второго sed
(просто bash
):
get_parameter ()
{
<<< "${query//%20/ }" grep -o "${1}=[^&]*"
}
изменение:
echo "$query" | sed -n 's/^.*$1=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"
кому:
echo "$query" | sed -n 's/^.*'"$1"'=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"