我想做那样的事情:
cat file.txt | ./myscript.sh
file.txt的
http://google.com
http://amazon.com
...
如何读取myscript.sh中的数据?
答案 0 :(得分:10)
您可以使用while loop
(逐行处理)执行此操作,这是此类事情的常用方法:
#!/bin/bash
while read a; do
# something with "$a"
done
有关更多信息,请参阅http://mywiki.wooledge.org/BashFAQ/001
如果您想要 slurp 变量中的整个文件,请尝试这样做:
#!/bin/bash
var="$(cat)"
echo "$var"
或
#!/bin/bash
var="$(</dev/stdin)"
echo "$var"
答案 1 :(得分:2)
你可以欺骗read
接受这样的管道:
echo "hello world" | { read test; echo test=$test; }
甚至写一个这样的函数:
read_from_pipe() { read "$@" <&0; }
答案 2 :(得分:2)