можно использовать, найдите, посмотрите ниже примера
find /var/www/ -type d -exec chmod g+s {} \;
Если Ваша система/оболочка поддерживает его, можно использовать перенаправление и обработать замену для вывода материала к различным дескрипторам файлов. Например:
(
echo "This goes to fd 1"
echo "This goes to fd 3" >&3
) 3> /dev/tty | some command
В этом примере первый оператор эха отправляется в some command
, в то время как второе отправляется на терминал.
(
echo "This goes to fd 1"
echo "This goes to fd 3" >&3
) 3> >(some command)
В этом случае первый оператор эха переходит в stdout
, и второй оператор эха переходит в some command
.
Вы могли (и вероятно должен) печатать Ваши сообщения отладки на потоке стандартной погрешности сценария вместо его стандартного вывода. Стандартная погрешность не проходит канал, таким образом, все хорошо.
(
echo >&2 "$mysql_root_password"
) | dialog --gauge "Working hard..." 6 50
При реальной необходимости в сообщении на стандартном выводе сценария можно открыть дополнительный дескриптор файла, это подключено к стандартному выводу сценария, и перенаправьте сообщение к тому дескриптору файла.
{
(
echo >&3 "$mysql_root_password"
) | dialog --gauge "Working hard..." 6 50
} 3>&1
Для получения дополнительной информации посмотрите при использовании дополнительного дескриптора файла? и сообщения это связывается с.
Вы могли повторить значение mysql_root_password
к stderr, при наблюдении, что значение является только диагностикой:
echo $mysql_root_password >&2
Вы могли также, возможно, использовать tee
:
export mysql_root_password="test"
(
echo $mysql_root_password
) | tee /dev/tty | dialog --gauge "Working hard..." 6 50
Я смущаюсь рекомендовать tee
поскольку иногда это (или каналы) делает буферизацию, которая заставляет вывод быть менее, чем полезным.