![测试运行命令但不执行它但显示命令结果](https://linux22.com/image/1018067/%E6%B5%8B%E8%AF%95%E8%BF%90%E8%A1%8C%E5%91%BD%E4%BB%A4%E4%BD%86%E4%B8%8D%E6%89%A7%E8%A1%8C%E5%AE%83%E4%BD%86%E6%98%BE%E7%A4%BA%E5%91%BD%E4%BB%A4%E7%BB%93%E6%9E%9C.png)
前段时间我学到了一个命令,它可以运行命令并显示最终结果,但它实际上不会执行命令,只会显示结果,就像运行命令一样。我忘记了这个命令,似乎在网上找不到它。您是否恰好知道所需的命令?非常感谢您的帮助。
我正在运行带有 GNOME 的 Ubuntu 20.04 LTS 桌面。设置:
- 英特尔 i9700
- GSkill Trident 16 GB 内存
- Nvidia RTX 2080
- 三星 970 EVO Plus SSD
我正在寻找的命令是不同发行版使用的通用终端命令。我以前在 Ubuntu Desktop 18.04 上使用过它(也许在 Fedora 上,不记得是哪个版本)。
答案1
我正在寻找的命令是通用终端命令
我假设我们指的是某种 bash 命令,因为 bash 是 Ubuntu 终端的默认解释器。
据我了解,您正在寻找类似于 Microsoft Powershell 的选项-whatif
(如果您熟悉它),它可以让您执行几乎所有已知命令,但不进行任何更改,从而让您知道您的语法是否正确,或者命令链的结果。
不幸的是,这样的功能并不存在(我真的希望我们有一个)。
因此,您实际上指的是许多“命令”都具有的一组选项和标志,它们将模拟您的参数。这些“命令”通常是一组脚本或脚本的别名,它们也能够模拟您的参数,而不是纯核心操作系统命令。
最常见的标志是:--dry-run
、--simulate
和--fake
,许多程序脚本通常都会提供它们。但这里的关键词是“通常“,因为如果没有作者在脚本中内置的功能和代码,它就无法工作。
以下是 APT 的一个例子:sudo apt-get install --dry-run "the_package_i_really_want"
。
来自 apt-get 手册页:
-s, --simulate, --just-print, --dry-run, --recon, --no-act
No action. Perform a simulation of events that would occur but do not actually change the system.
Configuration Item: APT::Get::Simulate.
Simulate prints out a series of lines, each one representing an rpm
operation: Configure (Conf), Remove (Remv), Unpack (Inst). Square brackets indicate broken packages with an empty set of square brackets meaning breaks that are of no consequence (rare).
以下是该mount
命令的另一个示例:
sudo mount --fake /dev/sda1 mydir
来自 mount 手册页:
-f, --fake
Causes everything to be done except for the actual system call;
if it's not obvious, this ``fakes'' mounting the filesystem.
This option is useful in conjunction with the -v flag to determine
what the mount command is trying to do.
人们编写了一些外部工具/脚本和技巧,您可以尝试一下,但这也可能有风险,现在需要您进行研究。
答案2
我不确定是否存在这样的命令,因为有些命令如果在裸机上运行可能会破坏系统,例如“rm -rf / --no-preserve-root”。如果命令可能具有破坏性,则只需启动虚拟机并在那里测试该命令即可。