如何由`which`返回`cat`文件名?

Zab*_*bba 2 command-line bash

我回答了这个问题,但意识到它可以更好。

我该如何转换:

$ which gjslint
$ cat /usr/local/bin/gjslint
Run Code Online (Sandbox Code Playgroud)

变成这样:

$ cat < which gjslint
-bash: which: No such file or directory
Run Code Online (Sandbox Code Playgroud)

..以便将输出路径+文件名which传递给cat它,然后执行它的操作(即将文件名的内容打印到屏幕上)。

Lek*_*eyn 7

使用反引号:

cat `which gjslint`
Run Code Online (Sandbox Code Playgroud)

如果路径包含空格(默认路径不太可能),则需要将其放在括号中:

cat "`which gjslint`"
Run Code Online (Sandbox Code Playgroud)

另一种选择是cat "$(which gjslint)"。我用反引号代替的原因$()是因为它更容易打字,一只手敲两次键 vs 两只手敲四次。我知道使用`over的缺点$(),但这些在这种情况下不适用。您不会嵌套反引号或使用斜杠来快速查找程序。

  • 有[一个论点](http://mywiki.wooledge.org/BashFAQ/082) 最好使用`$(which gjslint)`。我个人不能代表这个特定论点的有效性,但我确实倾向于相信它发布的网站的内容。 (2认同)