Назад | Перейти на главную страницу

Символы, на которые ссылаются восьмеричные значения в сценариях оболочки * NIX - получить их для анализа?

У меня есть сценарий, который на 100% должен быть выполнен таким нелепым образом:

эхо $ '\ 150 \ 151 \ 073 \ 145 \ 143 \ 150 \ 157' $ '\ 171 \ 141 \ 171'
(без кодирования: эхо привет; эхо ура)

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

вы можете попробовать использовать символ NULL непосредственно перед '\ 073':

echo $'\150\151\0\073\145\143\150\157' $'\171\141\171

таким образом оболочка проанализирует ';'

вывод будет:

hi yay

и нет

hi
yay

eval? Обратные кавычки? Нажимать ввод между строками? sh -c? $()? Что-то совсем другое? Не зная Зачем вы должны делать это в обратном порядке, мы не можем предложить много альтернатив, так как мы не знаем, что вы жестяная банка использовать.

Это не позволяет мне отвечать на комментарии, так как я не авторизован.

В любом случае все должно быть введено в одну строку восьмеричными символами. Нет `, нет $ (, нет входов и нет eval. Это восьмеричное или ничего.

... и я не могу редактировать предыдущие сообщения.

Я пробовал нулевые байты, но он просто завершает эту строку, а не команду echo. Ваш пример приведет не к двум отдельным командам, а к одной команде. Мне нужны две команды.