Linux маршрутизирует пакеты IPv6 через неправильный интерфейс

При запуске

FILE='/tmp/1.txt' echo "file: $FILE"

оболочка расширяет переменную $FILE перед выполнением присваивания, поэтому, предполагая, что FILE ранее не был установлен, вы получите:

FILE='/tmp/1.txt' echo "file: "

Вы можете подтвердить это поведение, установив сначала известное значение FILE:

FILE="foo"
FILE='/tmp/1.txt' echo "file: $FILE"

Вторая строка расширяется до:

FILE='/tmp/1.txt' echo "file: foo"

Затем значение FILE в контексте этой команды изменяется на /tmp/1.txt. Затем оболочка выполняет echo "file: foo"

Как упомянул @admstg в своем ответе, вы можете сделать:

FILE='/tmp/1.txt'; echo "file: $FILE"

Но это поведение отличается от того, что вы изначально пытались сделать. То, что у вас было изначально, устанавливает FILE только на время команды echo; вышеприведенное устанавливает его на время работы оболочки (или до тех пор, пока он не будет явно отключен).

1
12.12.2015, 17:50
0 ответов

Теги

Похожие вопросы