gpt4 book ai didi

ubuntu - 将查找结果传递给自定义脚本

转载 作者:行者123 更新时间:2023-12-04 18:47:40 25 4
gpt4 key购买 nike

我需要将返回查找函数的每个文件名传递给我的脚本
考虑简单的例子:

find ./ -iname "*.java"  | xargs ./fnfs2lc.sh

fnfs2lc.sh 包含简单的代码:
#!/bin/bash
echo $1
exit

因此,我希望得到文件列表,但它只显示目录树中的第一个文件。

如果我执行:
find ./ -iname "*.java"

结果是:
./src/test/java/com/win/slots/picktables/SequnetialPickTableTest.java
./src/test/java/com/win/slots/picktables/WeightPickTableTest.java
./src/test/java/com/win/slots/picktables/AccuratePickTableTest.java
./src/test/java/com/win/slots/picktables/RangePickTableTest.java
./src/test/java/com/win/slots/picktables/KeyPickTableTest.java
./src/test/java/com/win/slots/api/WinningAmountTest.java
./src/test/java/com/win/slots/api/BIEventSenderTest.java
./src/test/java/com/win/slots/api/ParserTester.java
./src/test/java/com/win/slots/api/WindowTest.java

如果我运行第一个命令,我会得到:
./src/test/java/com/win/slots/picktables/SequnetialPickTableTest.java

你知道为什么它在第一个文件后停止处理吗?

最佳答案

您的脚本正在使用 $1 ,所以这是列表中的第一个结果。如果要打印所有结果,可以使用:

#!/bin/bash
printf "%s\n" "$@"

此外,您不需要 xargs ,你可以使用
find . -iname "*.java" -exec ./fnfs2lc.sh {} +

如果您使用效率较低的
find . -iname "*.java" -exec ./fnfs2lc.sh {} \;

然后你可以使用
echo "$1"

但请注意 $1 周围的引号。

关于ubuntu - 将查找结果传递给自定义脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22745194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com