Bash for loop — можно ли добавить команды в цикле в историю оболочки?

При заданной команде 127.0.0.1равно localhost, компьютеру, на котором выполняется эта команда. Так что, конечно, вы сможете открыть vlc и воспроизвести поток только на той же машине.

Для переадресации на другой компьютер в той же локальной сети вам потребуется как минимум IP-адрес этого компьютера в вашей локальной сети.

Вы не можете транслировать "в Интернет", потому что ни компьютер, на котором запускается эта команда, ни мобильный телефон не имеют фиксированного общедоступного IP-адреса. Оба будут также за NAT (Network Address Translation ). Так что у вас не получится это сделать.

Если вы находитесь в локальной сети, что мешает вам использовать мультикастовый поток напрямую с "другой машины" (ведь это мультикаст, а именно для этого мультикаст и создан... )? Преобразование хорошего многоадресного потока RTP в подверженные ошибкам -пакеты UDP с одним -адресом не кажется мне идеальным решением...

2
29.05.2020, 11:27
1 ответ

Ваш скрипт вообще не сохранял историю в ~/.bash _историю в первое место, если только вы не экспортировали $HISTFILEперед его запуском. Как это говорит в man bashэто потому, что:

If HISTFILE is unset, or if the history file is unwritable, the history is not saved.

HISTFILEне является переменной окружения, это переменная оболочки и поэтому недоступен в сценариях, являющихся дочерними процессами. А также даже если вы выполнили эти команды

$    var=5
$    echo $((var--))
$    echo $((var--))
$    echo $((var--))
$    echo $((var--))
$    echo $((var--))

(обратите внимание на пробелы после подсказки )в интерактивном сеансе и не скрипт, они бы не сохранялись в ~/.bash _историю на практике ни потому, что популярные дистрибутивы Linux, такие как Ubuntu, от HISTCONTROLдо ignorespaceили ignoreboth(, что является псевдонимом для ignorespaceи ignoredups), чтобы не сохранять команды, начинающиеся с один или несколько пробелов. Это особенно полезно, если вы работаете над общий сервер с другими пользователями, и вы намеренно не хотите сохранить заданную команду в историю, чтобы ее могли увидеть другие люди, например, потому что он содержит ваш пароль или другие конфиденциальные Информация.

Но даже если перед командой не было пробелов:

$ var=5
$ echo $((var--))
$ echo $((var--))
$ echo $((var--))
$ echo $((var--))
$ echo $((var--))

вы, скорее всего, останетесь только с одним echo $((var--))запись в истории ~/.bash _, потому что HISTCONTROLобычно содержит ignoredupsили вышеупомянутый ignoreboth.Все это описано в разделе HISTCONTROLна странице руководства Bash, которую вы можете вызвать с man bashв вашей системе.

1
19.03.2021, 02:28

Теги

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