Как эхо команд оболочки и комментариев по мере их выполнения

#shell

Вопрос:

Я хочу напечатать почти все команды и все комментарии. Есть ли способ сделать это? как показано ниже:

 $ cat shl
#!/bin/bash                                                                     
set -x
# this is my bash script.
DIR=/tmp/so
ls $DIR
 
 $ bash shl 
  #!/bin/bash 
  # this is my bash script.
  DIR=/tmp/so
  ls /tmp/so
 

Ответ №1:

Просто используйте это, и команды, а также комментарии будут напечатаны как выполненные:

 #!/bin/bash -xv                                                                     
# this is my bash script.
DIR=/tmp/so
ls $DIR
 

Комментарии:

1. -v Показывает строку, которая должна быть проанализирована; -x показывает строку в том виде, в каком она была проанализирована перед выполнением. Я думаю. Вы также можете set -vx включать и выключать их set vx .

Ответ №2:

Пишите свои комментарии в качестве аргументов для команды no-op. (:)

 $ cat shl
#!/bin/bash -x
: this is my bash script.
DIR=/tmp/so
ls $DIR
 

выход:

 $ ./shl
  : this is my bash script.
  DIR=/tmp/so
  ls /tmp/so
 

Комментарии:

1. Я часто это делаю, но в нем не отображаются реальные комментарии .