我似乎记得,执行 shell 命令时应该有一个选项可以“模拟”该命令的结果,比如让系统以虚构的方式工作,只是说明命令的输出是什么。这对所有(甚至某些)命令都适用吗?如果是这样,你知道怎么做吗?
答案1
某些命令可能有这样的选项(例如-s
forapt-get
或-n
for rename
),但一般来说这既不正确也不可能。
答案2
这是特定于程序的,许多命令都带有这样的选项,rename
-n, -nono
No action: print names of files to be renamed, but don't rename.
或者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.
请参阅相应man
页面以了解这些选项。
一个安全的测试环境,让你可以虚拟地做你想做的事虚拟机, 看虚拟化和虚拟盒例如如何在 VirtualBox 上安装 Ubuntu?
答案3
您可能会混淆某些命令具有试运行或模拟标志以及 shell 中存在的该功能。
更复杂的是,sh 和 bash shell 都尊重非交互式 shell 的 -n noexec 标志。但是使用这些标志,命令会被读取但不会执行。目的是允许进行一些基本的语法检查。在下面的代码块中,您可以看到该标志的效果与在文本编辑器中查看脚本没有太大区别。
bash -n -v ~/Documents/Scripts/Test2.sh
#!/bin/bash -nx
te="bob's your uncle"
echo $te
echo $te | sed 's/uncle/father/g'