例如,我有
./run.sh < file.dat
如何在run.sh中获取参数“file.dat?”
答案 0 :(得分:4)
在Linux上,您可以从/proc
获取此数据:
#!/bin/bash
readlink /proc/$$/fd/0
这将打印任何以stdin打开的路径,例如示例中的file.dat
。
请注意,以这种方式获取文件名不是使用该文件的正确方法,应该纯粹用于调试和信息目的。
要处理数据,您只需从stdin读取即可。例如,读取IFS= read -r myline; echo "$myline"
行读取单行,或mydata=$(cat); echo "$mydata"
读取所有行。