Avl*_*xis 2 shell pipe output arguments
我想做类似以下的事情:
which someapplciation | cd outputfrompreviouscommand
Run Code Online (Sandbox Code Playgroud)
该命令which
提供了一个目录,我希望能够使该输出我当前的工作目录,而不使用编程语言,即awk
,bash
,perl
等,仅使用管道命令。
进一步举个例子:
which vi
Run Code Online (Sandbox Code Playgroud)
提供输出
/some/dir
Run Code Online (Sandbox Code Playgroud)
我希望我的工作目录被移动到那个目录,我可以使用pwd
命令来测试该目录,该命令的输出应该与/some/dir
.
如果您正在运行的第二个命令没有从其标准输入中读取,则不能使用管道。但是,您可以执行以下操作
cd $(which someapplication)
Run Code Online (Sandbox Code Playgroud)
或者,因为您需要一个目录名cd
而不是一个可执行文件名:
cd $(dirname $(which someapplication))
Run Code Online (Sandbox Code Playgroud)
所述$(...)
外壳操作者括号内执行该命令并替换其输出到命令行。