Проблема с командой для нехватки памяти -Неожиданный конец строки

Команды scpи sftpявляются частью sshи подключаются к серверу ssh. sftpпредоставляет ftpподобный интерфейс для ssh.

sftpили безопасный ftp, это что-то другое. Настройка сервера sftpникоим образом не позволит вам запустить sftp. Вам нужен сервер ssh.

0
07.09.2021, 15:43
1 ответ

Символы 52 -59 вашей строки,

"stress-ng --vm-bytes $(awk '/MemAvailable/{printf \"%d\n\", $2 * 0.9;}' < /proc/meminfo)k --vm-keep -m 1"
                                                   ↑↑↑↑↑↑↑↑

показано выделенным вверху и изолированным внизу:

                                            \  "  %  d  \  n  \  "

анализируются как:

  1. "      (символ кавычек (, экранированный))
  2. %
  3. d
  4.         (символ новой строки, шестнадцатеричный 0x0A)
  5. "

в результате чего оболочка видит две строки:

stress-ng --vm-bytes $(awk '/MemAvailable/{printf "%d
", $2 * 0.9;}' < /proc/meminfo)k --vm-keep -m 1

поэтому awkвидит следующую двухстрочную программу -:

/MemAvailable/{printf "%d
", $2 * 0.9;}

Awk анализирует свою программу построчно (, если вы не используете обратную косую черту + новую строку ), поэтому он видит несбалансированные кавычки. Как известно, вы хотите пройти

/MemAvailable/{printf "%d\n", $2 * 0.9;}
с

по awk; т. е. позволить awkвидеть символы \nа не фактический символ новой строки. Так что вам нужно избежать \в вашем\n:

"stress-ng --vm-bytes $(awk '/MemAvailable/{printf \"%d\\n\", $2 * 0.9;}' < /proc/meminfo)k --vm-keep -m 1"
                                                       ↑

Кстати, ваша первая команда использует 0,95, но затем вы меняете его на 0,9 в следующих двух строках.

1
07.09.2021, 23:16

Теги

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