Jon*_*Jon 22 command-line bash
所以我在那里。试图附加到$PATH. 哦哦!我不小心取消了$PATH!不管什么原因我跑了
$ ls
bash: ls: command not found
Run Code Online (Sandbox Code Playgroud)
值得期待。然后我跑了
$ echo $PATH
$PATH:/home/jon/.local/bin
Run Code Online (Sandbox Code Playgroud)
是echo某种特殊情况吗?为什么不开$PATH?它内置于 bash 吗?
Min*_*ack 62
echo是一个内置的 bash。它不使用$PATH来查找echo程序,而是使用 bash 自己的版本echo而不是echo位于您的程序中的程序$PATH
在此处阅读更多信息: Bash Builtins(Bash 参考手册)
Mr *_*ner 25
除了 Minijack 提到的内容之外,您还可以使用type内置命令检查命令是什么。
$ type echo
echo is a shell builtin
Run Code Online (Sandbox Code Playgroud)
另一方面,which可用于专门检查可执行文件。一旦你取消设置 $PATH,你会得到类似的东西
$ which echo
/usr/bin/which: no echo in ((null))
Run Code Online (Sandbox Code Playgroud)
而根据您的路径设置,您会得到
/usr/bin/echo
Run Code Online (Sandbox Code Playgroud)
您可以检查man builtins各种内置函数的列表和描述。例如,[和test也是内置函数。
编辑:which即使没有 PATH 也适用于我,因为别名使用了绝对路径
| 归档时间: |
|
| 查看次数: |
7798 次 |
| 最近记录: |