模拟 shell 命令的结果

模拟 shell 命令的结果

我似乎记得,执行 shell 命令时应该有一个选项可以“模拟”该命令的结果,比如让系统以虚构的方式工作,只是说明命令的输出是什么。这对所有(甚至某些)命令都适用吗?如果是这样,你知道怎么做吗?

答案1

某些命令可能有这样的选项(例如-sforapt-get-nfor 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'

相关内容