Доброго времени суток,
echo "enter command:"
read X
echo "enter key:"
read Y
$X --help | awk '$1 == "$Y"'
есть подозрения, что $Y не дружит с ковычками, вот как эту проблему решить? Пробовал перед каждой ковычкой поставить \ - ругается на синтаксис
LinuxForum.Fans
Помогите найти ошибку в командном файле(Shell)
Автор: hard_reset
8 сообщений
4122 просмотров
внутри одинарных кавычек разыменование не происходит. надо так:
text
awk '$1 == '"$Y"Так мне надо, чтоб кавычки остались двойные, если ваш пример на echo отправить, то получается:
text
ps --help | awk ' == '-Aа надо:
text
ps --help | awk ' == "-A"'вот как это сделать? *TIRED*
PS
добился чего хотел таким образом:
text
awk '$1 == \"$Y\"'echo высвечивает всё как надо, но если его убрать вылазят ошибки:
text
awk: cmd. line:1: $1 == \"$Y\"
awk: cmd. line:1: ^ backslash not last character on line
awk: cmd. line:1: $1 == \"$Y\"
awk: cmd. line:1: ^ syntax errorвот как это сделать?
А что именно вы хотите получить в итоге?
в итоге хочу, чтобы командный файл выводил справку по ключу для конкретной команды
в итоге хочу, чтобы командный файл выводил справку по ключу для конкретной команды
Неудачный пример вы выбрали ;)
text
lupo@gentoo-laptop ~ % ps --help [gentoo-laptop][23:42]
Usage:
ps [options]
Try 'ps --help <simple|list|output|threads|misc|all>'
or 'ps --help <s|l|o|t|m|a>'
for additional help text.
For more details see ps(1).
Можно так:
text
lupo@gentoo-laptop ~ % ps --help all | grep '^ -A' [gentoo-laptop][23:45]
-A, -e all processes
...или так
text
lupo@gentoo-laptop ~ % ps --help all | awk '/-A/ {print}' [gentoo-laptop][23:45]
-A, -e all processesспасибо огромнейшее, помогло :)
...так более корректно будет работать:
text
ps --help all | awk '/^[[:space:]]*-A/ {print}'Войдите или зарегистрируйтесь, чтобы ответить.