Почему делает “туалет-c”, печатают значение еще одного с эхом?

Вы не можете сделать все прозрачным со Сквидом. Только HTTP может быть прозрачным и HTTPS с не рекомендуемым взломом. Для FTP Вам нужен чистый прокси FTP как Frox.

Так или иначе не имеет никакого смысла использовать прокси, если Вы хотите сделать все прозрачным, используйте NAT.

HTTP мог быть полезным только потому, что кэш.

13
21.08.2014, 23:56
3 ответа

echo выводит новую строку (\n) в конце строки

echo abcd | xxd
0000000: 6162 6364 0a          abcd.

В некоторых реализациях echo вы можете использовать -n :

-n не выводить новую строку

и протестировать:

echo -n abcd | wc -c
4

В некоторых реализациях вам понадобится \c экранирующая последовательность:

\c: Подавить , который в противном случае следует за последним аргументом в выводе. Все символы, следующие за '\c' в аргументах, должны быть проигнорированы.

echo -e 'abcd\c' | wc -c
4

Portably, используйте printf:

printf %s abcd | wc -c
4

(обратите внимание, что wc -c считает байты, а не символы (хотя в случае abcd они, как правило, эквивалентны). Для подсчета символов используйте wc -m).

21
27.01.2020, 19:52

По умолчанию echo будет печатать символ новой строки ( \ n ) после строки (именно поэтому вы видите приглашение оболочки на следующей строке вместо той же строки, где печатается abcd .)

Вы можете попробовать добавить параметр -n в echo , чтобы отключить завершающий символ новой строки.

echo -n abcd | wc -c
4
2
27.01.2020, 19:52

Если Вы запускаете echo без опции -n, он записывает символ новой строки после аргументов.  В противном случае, если вы набрали echo foo, ваше следующее сообщение оболочки появится справа от foo .  Итак, wc считает новую строку.

Как я могу предотвратить печать echo?

echo -n abcd | wc -c
5
27.01.2020, 19:52

Теги

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