bash: помещать текст в переменную без необходимости экранирования символов

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

Единственным решением будет позволить экранной заставке заблокировать устройство перед закрытием экрана.

Не говоря уже о том, чтобы другие люди не трогали ваши вещи.

0
21.02.2017, 10:05
2 ответа

Я делаю много этого и остановился на том, чтобы всегда заключать всю строку в двойные кавычки и избегать любых двойных кавычек. (\ ") или знаки доллара (\ $). Это легче запомнить, чем что-либо еще.

Другой, часто упускаемый из виду метод - объединение соседних строк внутри разных кавычек.

VAR =" строка без двойных кавычек "'строка с" двойными кавычками "'

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

2
28.01.2020, 02:14

Из этот ответ :

$ IFS='' read -r -d '' var <<'EOF'
j!'^+%&/()=1!'^+%&/()c
EOF
$ echo "$var"
j!'^+%&/()=1!'^+%&/()c
$

Или примите ввод через программу, отличную от оболочки, используя cat :

$ var=$(cat)
j!'^+%&/()=1!'^+%&/()c        
$ echo "$var"
j!'^+%&/()=1!'^+%&/()c
$

После ввода нажмите Введите , затем Ctrl + D .

Или, используя printf в bash :

$ xargs -0 printf "\n%q\n"
j!'^+%&/()=1!'^+%&/()c
'j!'\''^+%&/()=1!'\''^+%&/()c'
$ var='j!'\''^+%&/()=1!'\''^+%&/()c'
$ echo "$var"
j!'^+%&/()=1!'^+%&/()c
$

Здесь вам нужно , а не , нажать Enter , но нажмите Ctrl + D дважды после ввода текста для цитирования.

5
28.01.2020, 02:14

Теги

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