我不明白这个程序做什么:
if command -v apt-get > /dev/null; then
dpkg-query -W -f='...'
我不明白命令是怎么发出的:;命令";工作
在shell中有不同的方法。
-
默认情况是执行shell内置程序。
-
接下来的命令(二进制文件、脚本等;基本上是shell外部的东西(将在
PATH
变量中列出的目录中查找。 -
后面跟着别名。这些是可重复使用的命令缩写,您可以将其视为一种节省键入的方式。它们通常在shell的rc文件中定义。例如,我在我的
~/.bashrc
:alias lt='ls --color=tty -lhtr'
中定义了这一点;它只允许我键入lt
来获得反向排序的文件列表(最新的在底部(。 -
更复杂的命令可以分组到shell函数中。
command
命令是一个shell内置命令,允许您绕过任何可能与PATH
中的二进制文件或任何别名匹配的函数。假设我经常在特定主机之间使用rsync
,所以我编写了一个名为rsync
的函数,该函数包括带有所有选项的目的地,使我可以键入更少的内容。但是,如果我想用不同的目的地运行rsync
,我可以使用command rsync <other rsync options>
来绕过函数定义。请注意,别名是而不是被绕过;如果您以交互方式使用command
,则这是相关的。您可以在上面链接的内置页面中找到文档,或者键入help command
请参阅bash中的man bash
或help command
以获得帮助:
使用ARGS运行COMMAND,抑制shell函数查找。。。
if
检查是否存在命令apt-get
;如果存在函数apt-get
,则忽略它。