Установка среды Вар, содержащий пространство с ENV

Интерфейсу, который является членом моста, нельзя было присвоить дюйм/с ему непосредственно. Вы присваиваете адрес интерфейсу моста вместо этого, например.

ifconfig br0 0.0.0.0
6
17.04.2015, 09:43
3 ответа

Вам нужна двойная цитата в замене команд, в противном случае оболочка будет выполнять полевое расщепление с результатом замены команды:

$ env "$(echo 'VALUE="this is a test"')" ./somescript.sh
"this is a test"

для ENV Чтение из файла, вы должны Пусть Shell делает Splifing, но установить , если только нью , чтобы только ваша команда не сломалась с пространством:

$ IFS='
'
$ env $(cat .vars) ./somescript.sh

Если вы хотите прочитать из файла, лучше, если вы просто источник (aka DOT ) файл в somescript.sh :

#!/bin/bash

. .vars
: The rest of script go here
4
27.01.2020, 20:27

Мне кажется, вы слишком все усложняете.

$ env FOO='this is a test' printenv | egrep -i foo
FOO=this is a test

Кстати, кавычки не являются частью этойпроблемы. Используйте двойные кавычки, если вы хотите, например, заменить переменную в вашем значении; используйте одинарные кавычки, если вы хотите предотвратить подстановку переменных и т. д.

Черт возьми, используйте подстановку команд, если это вам подходит. Используйте отформатированные строки символов. Используйте оба.

$ env FOO=$'this\tis a test' printenv | egrep -i foo | cat -t
FOO=this^Iis a test
$ env FOO="$(echo $'this\tis a test')" printenv | egrep -i foo | cat -t
FOO=this^Iis a test

К сожалению, это может быть лучшим примером использования подстановки команд. Идея состоит в том, чтобы поместить вывод некоторой требуемой командыв переменную, а не просто безосновательно использовать подстановку команд там, где она не нужна.

$ env FOO="$(man man)" printenv | egrep -iA5 foo=
FOO=man(1)                                    man(1)



NAME
   man - format and display the on-line manual pages
0
27.01.2020, 20:27

На самом деле, есть гораздо лучший способ сделать это, и вы можете объявить несколько переменных без каких-либо проблем.

env {'VALUE=thisisatest','FOO=this is a test'} printenv
1
27.01.2020, 20:27

Теги

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