Если Вы используете администратора сети, я предлагаю переключиться на wicd вместо этого. По моему опыту, администратор сети, кажется, разработан главным образом для графических рабочих столов. На wicd намного легче управлять сетями Wi-Fi без графических инструментов.
Как обсуждено в комментариях, проблема состоит в том, где Вы оставили курсор. Например:
goldilocks@home> echo -n 1234; echo -ne "\r56"
56goldilocks@home>
То, что произошло, является первым echo
записал "1234", затем второе эхо вернулось к началу строки и распечатало "56" и вышло. Курсор остался после этих 6, и следующей вещью, которая произошла, является оболочка, распечатал командную строку, перезаписав "34". Если Вы включали новую строку во второе эхо (или удалил -n
переключатель, так, чтобы эхо распечатало новую строку автоматически), Вы добрались бы:
goldilocks@home> echo -n 1234; echo -e "\r56"
5634
goldilocks@home>
Курсор спустил строку, уехав "34" позади.
Можно сделать это использование немного усовершенствованного sed выражения
printf '%s\n' {1..5} | sed '/1/,/2/{ s/1/6/;s/2/7/;s/\([^\n]*\)\(\n\)\(.*\)/\3\2\1/; }' | tr '\n' ' '
Используя awk
printf '%s' {1..5} | awk '{gsub(/12/,"67"); print}'
Используя tr
printf '%s' {1..5} | tr '12' '67'
printf
встроенный. В Вашем примере Вы используете возврат каретки \r
который переопределяет printf
s вывод. Возьмите этот пример echo "12345"; printf '\r67\n'
– Valentin Bajrami
28.08.2013, 18:41
|
вместо ;
.As на мое понимание ;
между двумя командами похож на выполнение двух команд рядом со следующим и обоими команды, являющиеся независимым друг от друга. Но в Вашем примере, Вы перенаправляете вывод одного другому.
– g4ur4v
28.08.2013, 19:03
Freakin_Finnickity_Goldilocks_the_Magnificent
но я редактирую эти вещи для краткости ;) – goldilocks 29.08.2013, 12:54