Это просто nohup
говорит вам, что он настроен; он выводит это в свою стандартную ошибку, которую вы перенаправили на nohup.err
. Вы можете избежать сообщения, перенаправив его стандартный ввод:
nohup bash life.bash > nohup.out 2> nohup.err < /dev/null &
nohup
проверяет свой стандартный ввод, стандартный вывод и стандартную ошибку, чтобы увидеть, какие из них подключены к терминалу; если он находит подключенные, он обрабатывает их соответствующим образом (, игнорируя ввод, перенаправляя вывод на nohup.out
, перенаправляя ошибку на стандартный вывод )и сообщая вам, что он сделал. Если он не находит ничего, что нужно отключить, он ничего не выводит сам.
Либо используйте вкладки и<<-EOF
(с дефисом ), либо используйте фильтр вместо кота, например.sed
:
$ sed -e "s/^\s*//" <<EOF
as
df
gh
jk
op # two tabs
EOF
При этом удаляются как пробелы, так и табуляции. Обратите внимание, что закрытие EOF
не может иметь отступ. Вы можете использовать <<" EOF"
, а затем снова " EOF"
с тем же количеством пробелов, что и конечный токен, но кавычки блокируют расширения в документе здесь -, что вам не нужно в данном случае. Сравните:
$ a=x
$ cat <<EOF
"$a"
EOF
"x"
$ cat <<"EOF"
"$a"
EOF
"$a"
Что касается echo
, то у него с этим проблемы. Но вы можете использовать printf
также:
printf "%s\n" \
"[influxdb]" \
"name = InfluxDB Repository - RHEL \$releasever" \
"baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable" \
"enabled = 1" \
"gpgcheck = 1" \
"gpgkey = https://repos.influxdata.com/influxdb.key" \
| sudo tee /etc/yum.repos.d/influxdb.repo
Я оставил тире в \$
, как и в вашем вопросе, но они могут быть здесь неправильными, так как они избегают расширений.
Вы можете использоватьecho -e "\tblabla"
:
$ echo -e "\tblabla\n\t\tblibli\n\t\t\tbloblo\n"
blabla
blibli
bloblo
Как объяснено на странице руководства bash:
If the -e option is given, interpretation of the following backslash-escaped characters is enabled.
[...]
\a alert (bell)
\b backspace
\c suppress further output
\e
\E an escape character
\f form feed
\n new line
\r carriage return
\t horizontal tab
\v vertical tab
\\ backslash
\0nnn the eight-bit character whose value is the octal value nnn (zero to three octal digits)
\xHH the eight-bit character whose value is the hexadecimal value HH (one or two hex digits)
\uHHHH the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value HHHH (one to four hex digits)
\UHHHHHHHH
the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value HHHHHHHH (one to eight hex digits)