Nik*_*ole 1 linux bash xargs fswatch
嗨,我正在尝试编写一个执行以下命令的shell命令:
fswatch ./src | xargs -I {} cp {} ./otherfolder
前两件事正在使用上面的命令,但是在此之后我无法弄清楚如何运行命令。
我试过了
fswatch ./src | xargs -I {} cp {} ./otherfolder && make
那不起作用,因为&&与我认为的xargs冲突
fswatch ./src | xargs -I {} cp {} ./otherfolder | make
在这里,make命令被立即调用,而不是在复制完成之后。(甚至在fswatch触发更改之前被调用)
使用xargs可以在cp之后运行命令吗?
解决该问题的一种方法是生成一个shell:
fswatch ./src | xargs -I {} sh -c "cp '{}' ./otherfolder && make"
Run Code Online (Sandbox Code Playgroud)
双引号的内容在单独的外壳中执行,并且将按您期望的方式运行(首先执行复制,然后执行make(假设复制成功))。
{}建议在文件名包含空格或其他字符时使用单引号,以防止出现问题,*否则空格会被shell扩展。
| 归档时间: |
|
| 查看次数: |
377 次 |
| 最近记录: |