Я пытаюсь передать чтение пользовательского ввода bash с помощью команды read
во внешнее приложение, как если бы пользователь написал аргументы в bash.
В следующем примере я использовал функцию, а не внешнее приложение, но не должно иметь значения . Это скрипт, который я использую:
foo() { while [ "$#" -gt 0 ]; do echo "$1"; shift; done }
read -p "Write something: " bar
foo "${bar}"
foo ${bar}
Что я пишу, когда меня просят что-то написать:
"a b" "c d" e\ f g\"h
То, что я ожидаю увидеть как вывод:
a b
c d
e f
g"h
Что я на самом деле вижу: (первая строка - это первый вызов foo()
, остальные строки - от второго вызова)
"a b" "c d" e f g"h
"a
b"
"c
d"
e
f
g"h