Выполнить команду из строки как с одинарными, так и с двойными кавычками

Пространство подкачки в Linux используется, когда объем физической памяти (RAM) заполнен. Если системе требуется больше ресурсов памяти, а оперативная память переполнена, неактивные страницы в памяти перемещаются в пространство подкачки. Хотя пространство подкачки может помочь машинам с небольшим объемом оперативной памяти, его не следует рассматривать как замену большего объема оперативной памяти.

Swap - это хорошая вещь, и его виртуальная память используется на жестком диске, Linux фактически создает раздел диска для swap, он должен быть меньше вашей системной оперативной памяти. Когда у вас заканчивается память, своп используется только для временного использования.

1
04.04.2019, 12:20
1 ответ

Попытка поместить сложные команды в простую переменную обречена на неудачу. Подробнее см. Я пытаюсь поместить команду в переменную, но сложные случаи всегда терпят неудачу! .

По всей вероятности,то, что вы пытаетесь сделать, лучше выполнить с помощью функции bash .

Если вы действительно хотите использовать переменную, используйте массив bash:

command=(some_command --query " 'val' is not null ")
"${command[@]}"

Мы можем увидеть фактическое значение массива command, используяdeclare:

$ declare -p command
declare -a command=([0]="some_command" [1]="--query" [2]=" 'val' is not null ")

Мы видим, что это сохраняет одинарные кавычки вокруг val.

Пример

$ command=(echo -E " 'val' is not null ")
$ "${command[@]}"
 'val' is not null 
1
27.01.2020, 23:41

Теги

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