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