bash引用参数/variablespipe道

如何引用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部分以获取更多信息。