执行多条指令

采用-I参数

参考以下指令,打印了两次匹配到的文件名

[yeqiang@harbor spring-demo]$ find | grep \\.java | xargs -I param sh -c "echo param; echo param"
./src/main/java/com/example/demo/DemoApplication.java
./src/main/java/com/example/demo/DemoApplication.java
./src/test/java/com/example/demo/DemoApplicationTests.java
./src/test/java/com/example/demo/DemoApplicationTests.java

说明:-I param 将管道的输入存储在变量param中,如第一行匹配,等价于param="./src/main/java/com/example/demo/DemoApplication.java",sh -c指令中 echo param;等价于 echo "./src/main/java/com/example/demo/DemoApplication.java"

注意不是$param

 

执行单条指令

[yeqiang@harbor spring-demo]$ find | grep \\.java  | xargs -i echo {}
./src/main/java/com/example/demo/DemoApplication.java
./src/test/java/com/example/demo/DemoApplicationTests.java

说明:-i 参数将管道的输入存储在{}中,{}可出现在后续指令任意位置,但是只能引用一次。

Logo

更多推荐