Кажется, я помню, что при выполнении команды оболочки должна быть возможность «имитировать» результат этой команды, например, заставить систему работать, но вымышленно, просто сказать, какой будет команда. Это верно для всех (или даже для некоторых) команд? Если да, знаете ли вы, как это сделать?
Некоторые команды могут иметь такую опцию (например, -s
для apt-get
или -n
для rename
), но в целом это не так и не возможно.
Это зависит от программы, многие команды поставляются с такой опцией, например, 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
страницы для этих опций.
Безопасной средой тестирования, где вы можете фактически делать то, что вы хотите, является Виртуальная машина , см. virtualization и virtualbox , например. Как установить Ubuntu на VirtualBox?
Возможно, вы не согласны с тем, что некоторые команды имеют пробный запуск или имитируют флаги, когда эта функция присутствует в оболочке.
Чтобы усложнить ситуацию, обе оболочки sh и bash соблюдают флаги -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'