我有一个单行命令,让我们说
grep needle haystack.file
如果我想使用pwd命令将“needle”替换为当前工作目录,该怎么办?现在可能可以使用管道,但我需要针部分来显示工作目录,其余命令是相同的。
最好像这样:
grep (pwd) haystack.file
执行时会执行以下命令:
grep /var/www/html/ haystack.file
我已经做了一些搜索并找到了许多管道示例,但它不能应用于我的场景中,因为第一部分(grep)和第二部分(haystack.file)已在应用程序中修复。 / p>
答案 0 :(得分:4)
使用$PWD
变量,始终设置:
grep "$PWD" haystack.file
您也可以使用命令替换:
grep "$(pwd)" haystack.file
请注意引号的重要性。做吧!否则会发生奇怪的事情。
答案 1 :(得分:2)
您可以使用命令替换
<强>测试强>
$ echo $(pwd) > test
$ grep $(pwd) test
/home/xxx/yyy
或强>
$ grep `pwd` test
/home/xxx/yyy
安全强>
总是建议引用命令替换来处理pwd
命令输出中的空格
<强>测试强>
$ pwd
/home/xxx/yyy/hello world
$(pwd) > test
$ grep $(pwd) test #without quoting
grep: world: No such file or directory
test:/home/xxx/yyy/hello world
$ grep "$(pwd)" test #with quoting
/home/xxx/yyy/hello world