Текст между обратными галочками выполняется и заменяется выводом команды (минус запаздывающие символы новой строки, и остерегайтесь той оболочки, поведения варьируются, когда существуют символы NUL в выводе). Это называют заменой команды, потому что ею заменяют с выводом команды. Таким образом, если Вы хотите распечатать 5, Вы не можете использовать обратные галочки, можно использовать кавычки, как echo "$b"
или просто отбросьте любую цитату и использование echo $b
.
Как Вы видите с тех пор $b
содержит 5, при использовании обратных галочек bash
пробует к команде выполнения 5
и с тех пор нет такой команды, это перестало работать с сообщением об ошибке.
Чтобы понять как работы обратных галочек, попытайтесь выполнить это:
$ A=`cat /etc/passwd | head -n1`
$ echo "$A"
cat /etc/passwd |head -n1
должен распечатать первую строку /etc/passwd
файл. Но так как мы используем обратные галочки, это не печатает это на консоли. Вместо этого это хранится в A
переменная. Можно отозваться эхом $A
к этому. Обратите внимание, что более эффективный способ распечатать первую строку использует команду head -n1 /etc/passwd
но я хотел указать, что выражение в обратных галочках не должно быть простым.
Таким образом, если первая строка/etc/passwd root:x:0:0:root:/root:/bin/bash
, первой командой динамично заменит удар на A="root:x:0:0:root:/root:/bin/bash"
.
Обратите внимание, что этот синтаксис имеет Оболочку Bourne. Заключение в кавычки и выход становятся быстро кошмаром с ним особенно при запуске вложения их. Ksh, представленный $(...)
альтернатива, которая теперь стандартизируется (POSIX) и поддерживается всеми оболочками (даже Оболочка Bourne от Unix v9). Таким образом, необходимо использовать $(...)
вместо этого в наше время, если Вы не должны быть портативными к очень старым Оболочкам Bourne.
Также обратите внимание что вывод `...`
и $(...)
подвергаются разделению слова и поколению имени файла точно так же, как переменное расширение (в zsh, слово, разделяющее только), так должен был бы обычно заключаться в кавычки в контекстах списка.
Это читает как Вы, используют обе модемных платы одновременно в том же компьютере для соединения дважды с той же сетью. Это не будет работать в большинстве случаев. С двумя эквивалентными восходящими каналами не может знать Ваша ОС, какой восходящий канал она, как предполагается, использует. Если Вы проверяете свою таблицу маршрутизации (ip route show
) Вы, вероятно, обнаружите два маршрута по умолчанию и/или два маршрута к той же подсети Вашего поставщика. Необходимо избавиться от любой неоднозначности в таблице маршрутизации. Первый подход удаляет один маршрут по умолчанию и corresponting (тот же интерфейс) маршрут к подсети поставщика. Это в основном представит одну из Ваших бесполезных карт, но должно решить Вашу проблему возможности соединения.
Для больше/лучше помогают, мы должны были бы знать то, что Вы хотите сделать со своими 2 4-граммовыми картами. Один восходящий канал достаточно для доступа в Интернет...
В дополнение к какому было сказано (Вы упомянули iptables, но не, что Вы сделали с ним)... Вы пробовали MASQing трафик, оставляя Вашу машину?
например.
iptables -t nat -I POSTROUTING -o 4g-interface-1 -j MASQUERADE
и
iptables -t nat -I POSTROUTING -o 4g-interface-2 -j MASQUERADE