не удается запустить команду «lspci» с помощью rsh из командного файла Windows

Ваш echo "$ a" печатает "привет", а затем возвращается к началу строки (это то, что \ r делает), напечатайте «снова», вернитесь снова, напечатайте «george», снова вернется и перейдет к следующей строке ( \ n ). Все это совершенно нормально, но, как указывает Чепнер , это не имеет ничего общего с Bash: \ r и \ n интерпретируются терминалом , а не Bash (именно поэтому вы получите полный вывод, если передадите команду по конвейеру od ).

Вы можете лучше увидеть это с помощью

$ a=$(printf "hellooooo\r  again,\rgeorge\r\n")
$ echo "$a"

, так как это оставит конец перезаписанного текста:

georgen,o

Вы не можете использовать это, чтобы скрыть команды, только их вывод (и только если вы можете быть уверены, что перезаписать достаточным количеством символов), если не используется eval , как вы показываете (но использование eval обычно не рекомендуется). Более опасным трюком является использование CSS для маскировки команд , предназначенных для копирования и вставки с веб-сайтов.

1
28.08.2016, 00:43
0 ответов

Теги

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