Если вы конкретно спрашиваете о echo
, вы можете использовать -n
для подавления новой строки:
$ echo -n "test" >> outputfile
Если вы спрашиваете в более общем плане, как подавить новые строки в конвейерных или перенаправленных данных, то это кошка с множеством скинов. Один простой способ —tr
:
$ do_stuff | tr -d "\n" >> outputfile
Если вы только начинаете писать сценарии и выводить данные, возможно, лучше вообще отказаться от использования echo
в пользуprintf
:
$ printf "test" >> outputfile
printf
превосходит echo
во многих отношениях и по многим причинам, не последней из которых является то, что он печатает только то, что вы явно сообщаете (, и, что, возможно, более важно, в формате в котором вы хотите это ).
Большинство демонов будут отказывать в доступе пользователям, чьи оболочки не указаны в /etc/shells
(, а тех, кто аутентифицируется с помощью PAM, можно заставить сделать это с помощью строки конфигурации ). Но вам нужно будет проверить те, которые вам нужны (демоны FTP, сервер IMAP и т. д. ), чтобы убедиться, что их поведение соответствует вашим требованиям.
Я предполагаю, что это является дополнением к предоставлению таким пользователям отключенных паролей, которые (при правильной работе )означают, что отключенная оболочка является резервной для основного ограничения.