Проблемы с перенаправлением в bashLinux

Anonymous
Проблемы с перенаправлением в bash

Сообщение Anonymous »

Итак, у меня есть крошечный тестовый скрипт, который ведет себя странно. Предполагалось, что это станет началом некоторых тестов, которые я хотел провести, но я даже не могу заставить этот базовый сценарий работать должным образом. Надеюсь, кто-нибудь сможет обнаружить проблему, потому что я пробовал много других способов сделать это, и все они приводят к одной и той же проблеме.
declare stdout_file=$(mktemp -u)
declare stderr_file=$(mktemp -u)
mkfifo "$stdout_file" "$stderr_file"

cleanup() {
rm "$stdout_file" "$stderr_file" &>/dev/null
}

trap cleanup EXIT

sed 's/\(.*\)/ \1/' < "$stdout_file" &
sed 's/\(.*\)/ \1/' < "$stderr_file" >&2 &

fnc1() {
echo "Executing function"
}

echo "Running test"
fnc1 > $stdout_file 2> $stderr_file
echo "Done"

Я получаю различные результаты, просто выполняя скрипт несколько раз. Ничто из этого, как ни странно, не верно.
$ bash test.sh
Running test
Done
Executing function

$ bash test.sh
Running test
Done

$ Executing function

Да, в последнем примере он фактически заменил введенную мной команду выводом сценария.
Я каждый раз ожидал одного и того же результата что должно было быть
$ bash test.sh
Running test
Executing function
Done


Подробнее здесь: https://stackoverflow.com/questions/783 ... es-in-bash

Вернуться в «Linux»