如何引用input的参数?
例如,如果你有一个代码test.sh
如下
#!/bin/bash echo $1
当你运行./test.sh abcd.txt
,你会得到在屏幕上打印的abcd.txt。
但是当我尝试ls *.txt | ./test.sh
ls *.txt | ./test.sh
,我得到所有的回声空行。
你可以尝试使用xargs
:
find . -type f -name \*.txt -printf "%p\0" | xargs -0 -I xxx ./test.sh xxx
数据“输入”是STDIN,但这些不是命令行参数。 这里是一个打印STDIN的每一行的例子:
#!/usr/bin/env bash while read line; do echo "Line: $line" done
Bash read
命令有很多选项。 阅读手册页的SHELL BUILTIN COMMANDS
部分以获取更多信息。