我想知道我是否可以编写一个shell脚本,它接受两个同时的参数,一个来自文件,另一个来自stdin。你能举个例子吗?。
我在尝试
while read line
do
echo "$line"
done < "${1}" < "{/dev/stdin}"
但这不起作用。
答案 0 :(得分:1)
您可以使用cat -
或cat /dev/stdin
:
while read line; do
# your code
done < <(cat "$1" -)
或
while read line; do
# your code
done < <(cat "$1" /dev/stdin)
或者,如果你想读取通过命令行以及stdin 传递的所有文件,你可以这样做:
while read line; do
# your code
done < <(cat "$@" /dev/stdin)
另见:
答案 1 :(得分:0)
This topic似乎对此有所帮助:
{ cat $1; cat; } | while read line
do
echo "$line"
done
或者只是
cat $1
cat
如果你正在做的就是打印内容