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

Этот пример в javascript vanilla должен работать:

var timer = 0
var delay = 200
var prevent = false

node.onclick = (evnt) => {
    timer = setTimeout(() => {
         if(!prevent){
             //Your code
         }
         prevent = false
    }, delay)
}
node.ondblclick = (evnt) => {
    clearTimeout(timer)
    prevent=true
    //Your code
}
746
задан Mark Amery 26 April 2019 в 13:47
поделиться

2 ответа

set -x или set -o xtrace расширяет переменные и печатает маленький знак + перед строкой.

set -v или set -o verbose не расширяет переменные перед печатью.

Используйте set +x и set +v для отключения вышеуказанных настроек.

В первой строке скрипта можно поставить #!/bin/sh -x (или -v), чтобы получить тот же эффект, что и set -x (или -v) позже в скрипте.

Вышеописанное также работает с /bin/sh.

См. в вики для bash-хакеров set атрибуты и отладка.

$ cat shl
#!/bin/bash                                                                     

DIR=/tmp/so
ls $DIR

$ bash -x shl 
+ DIR=/tmp/so
+ ls /tmp/so
$
914
ответ дан 22 November 2019 в 21:17
поделиться

set -x даст вам то, что вы хотите.

Вот пример сценария оболочки для демонстрации:

#!/bin/bash
set -x #echo on

ls $PWD

Это раскрывает все переменные и печатает полные команды перед выводом команды.

вывод:

+ ls /home/user/
file1.txt file2.txt
292
ответ дан 22 November 2019 в 21:17
поделиться