Игнорируя ошибки в вашем скрипте, например, как вы читаете ADDR
, но ссылаетесь на ARR
, вы обычно можете просто использовать read
без источника для чтения из stdin и echo
без перенаправления для записи в stderr:
read -ra ARR
num="${ARR[1]}"
str="${ARR[0]}"
while [[ $num -ne 0 ]]; do
echo "$str"
num=$(( num - 1 ))
done
Это работает так:
$ echo 'Hello 10' > input_file.txt
$ bash bash_file.sh < input_file.txt > output_file.txt
$ cat output_file.txt
Hello
Hello
Hello
[...]
Вам также не нужно перенаправлять: теперь вы можете запустить его как bash bash_file.sh
, введите Hello 10
на клавиатуре, и напечатайте Hello
s на экране, так как это стандартный stdin и stdout, когда вы не перенаправляете.