我想做那样的事情:
cat file.txt | ./myscript.sh
Run Code Online (Sandbox Code Playgroud)
file.txt的
http://google.com
http://amazon.com
...
Run Code Online (Sandbox Code Playgroud)
如何读取myscript.sh中的数据?
Gil*_*not 12
你可以用while loop(逐行处理)这样做,这是这类事情的常用方法:
#!/bin/bash
while read a; do
# something with "$a"
done
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅http://mywiki.wooledge.org/BashFAQ/001
相反,如果您想在变量中填充整个文件,请尝试执行以下操作:
#!/bin/bash
var="$(cat)"
echo "$var"
Run Code Online (Sandbox Code Playgroud)
要么
#!/bin/bash
var="$(</dev/stdin)"
echo "$var"
Run Code Online (Sandbox Code Playgroud)
你可以使用这样的东西:
while read line; do
echo $line;
done
Run Code Online (Sandbox Code Playgroud)
在这里进一步阅读:Bash 脚本,从 stdin 管道读取值
您read可以像这样欺骗从管道接受:
echo "hello world" | { read test; echo test=$test; }
Run Code Online (Sandbox Code Playgroud)
甚至写一个像这样的函数:
read_from_pipe() { read "$@" <&0; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3482 次 |
| 最近记录: |