Из того, что я нашел на этом веб-сайте и в других онлайн-источниках, говорится, что он использует двойные кавычки вокруг переменной. Но это не работает для меня.Как использовать grep с использованием переменной в bash
Например:
Моя переменная $GTUNNELNATNETIP
[johnwayne:630 ~] GTUNNELNATNETIP=`cat iptables.out |awk '{print $NF}'|cut -d "/" -f1`
[johnwayne:631 ~] echo $GTUNNELNATNETIP
10.19.192.0
[johnwayne:632 ~]
и файл Я ищу в это iptables2.out
поиска без кавычек находит значение, но не без ошибок
[johnwayne:632 ~] grep $GTUNNELNATNETIP iptables2.out
grep: : No such file or directory
iptables2.out:-A POSTROUTING -s 10.19.192.0/22 -o eth1 -j SNAT --to-source 64.134.58.175
[johnwayne:633 ~]
Он не работает с d овальные или одинарные кавычки. Или любой другой формат, я попытался
[johnwayne:633 ~] grep "$GTUNNELNATNETIP" iptables2.out
grep: Trailing backslash
[johnwayne:634 ~] grep '$GTUNNELNATNETIP' iptables2.out
[johnwayne:635 ~] grep `echo $GTUNNELNATNETIP` iptables2.out
grep: : No such file or directory
iptables2.out:-A POSTROUTING -s 10.19.192.0/22 -o eth1 -j SNAT --to-source 64.134.58.175
[johnwayne:636 ~] /bin/grep $GTUNNELNATNETIP iptables2.out
/bin/grep: : No such file or directory
iptables2.out:-A POSTROUTING -s 10.19.192.0/22 -o eth1 -j SNAT --to-source 64.134.58.175
[johnwayne:637 ~]
Он работает, когда я прохожу фактическое значение без ошибки
[johnwayne:637 ~] grep 10.19.192.0 iptables2.out
-A POSTROUTING -s 10.19.192.0/22 -o eth1 -j SNAT --to-source 64.134.58.175
[johnwayne:638 ~]
Так почему же произойдет, что ошибка Grep, когда файл и каталог существуют? И как передать переменную без ошибок. Я пытаюсь подсчитать, сколько строк возвращает grep, и получить точную команду iptables
без отображения имени файла.
так:
[johnwayne:637 ~] /bin/grep 10.19.192.0 iptables2.out
-A POSTROUTING -s 10.19.192.0/22 -o eth1 -j SNAT --to-source 64.134.58.175
[johnwayne:638 ~]
в противоположность этому:
[johnwayne:620 ~] grep $GTUNNELNATNETIP iptables2.out
grep: : No such file or directory
iptables2.out:-A POSTROUTING -s 10.19.192.0/22 -o eth1 -j SNAT --to-source 64.134.58.175
[johnwayne:621 ~]
Не могли бы вы предоставить вывод '' echo '$ GTUNNELNATNETIP "' '? –
Показать вывод 'echo '$ GTUNNELNATNETIP" | cat -vte'? – anubhava