LINUX.ORG.RU

Bash и пробел

 


0

2

Здравствуй ЛОР, хотелось бы спросить у вас варианты выполнения команды «ping localhost» но без явного указания в ней пробела. Пока что для себя я нашел следующие варианты, это:

{ping,localhost}

ping${IFS}localhost

SP=$'\x20';ping${SP}localhost ну или вырезание самого пробела из какой либо переменной (${var:start:offset})

знаите ли вы какие то другие способы?


norkomani na marshe

$ while read s; do sh -c "${s//×/ }"; done
ping×localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.033 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.026 ms
^C
entefeed ☆☆☆
()
Ответ на: комментарий от Kroz

С ходу так и придумаешь реальную ситуацию, я встречался лишь с ней лишь однажды. PHP скрипт для мониторинга системы принимал из браузера команды для системы, исходника у меня нет поэтому не могу показать, но суть была в том что админ проверил его командой ps и залил на сервер, передал линк мне. Так вот в дальнейшем когда я хотел выполнить скажем ps -x у меня это не получалось. Дело было как мы выяснили потом в кодировке, проходя через браузер и через сам PHP скрипт «ps -x» превращалось во что то непонятное для интерпритатора, точнее пробел в этой команде, выполнения не было. Пока админ не пришел и не профиксил скрипт я обходился «ps${IFS}-x».

hama
() автор топика
Ответ на: norkomani na marshe от entefeed

Не подходит, у вас присутствуют пробелы, нужно полностью без них. Моя ошибка, я не совсем корректно описал то что мне нужно.

hama
() автор топика
Ответ на: комментарий от shuck

Я извиняюсь, но не совсем понял про что вы. Я так понимаю это комбинация клавишь какая то + перенос строки который будет у нас в роли пробела?

Можно тоже самое будет передать через PHP скрипт (см. мой пример выше)? Думаю что нет.

hama
() автор топика
Ответ на: комментарий от hama
{ echo -n "{echo,";base64|tr -d '\n';echo "}|{base64,-d}|bash";} < script.sh

В script.sh любой код на баше. В выходе эквивалентный, но без пробелов.

NeXTSTEP ★★
()
Ответ на: комментарий от NeXTSTEP

Да вы правы, но основный смысл тут в фигурных скобках «{}», при раскрытие которых автоматически вставляется пробел и за счет чего команда полностью валидна для интерпритатора. Вот подобные примеры я и ищу, но как я понимаю они закончились.

hama
() автор топика
Ответ на: комментарий от Deleted

Теперь уже и не припомнить, но не суть уже, топик о другом.

hama
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.