Проблемы с перенаправлением в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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