напишите #!/bin/bash -x в первой строке, но не получите никакой информации во время выполнения

#bash

#bash

Вопрос:

При записи #!/bin/bash -x в первой строке файла bash (например test.sh ), я ожидаю увидеть некоторую информацию о выполнении, но ничего не получаю… Более того, когда я использую команду bash -x test.sh для запуска файла bash, он покажет информацию. Любая помощь в том, что происходит?

Большое спасибо!

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

1. Как вы запускаете скрипт, если вы не используете bash -x test.sh ? Используете ли вы bash test.sh , или ./test.sh ?

2. Да, и первый ответ точно объясняет причину.

Ответ №1:

Чтобы включить отладку в вашем скрипте, вам нужно будет использовать set -x и так:

 #!/bin/bash

set -x

.......
  

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

1. Оказывается, что «#!/bin/bash -x » также работает. Я попробовал совет другого парня и добился успеха. Спасибо!

Ответ №2:

Ошибка применяется только при непосредственном выполнении файла:

 myfile
./myfile
/path/to/myfile
  

Если вы вместо этого запустите интерпретатор, вместо него будет использоваться этот интерпретатор, независимо от того, корректен он или нет и совместим со сценарием. Поэтому рекомендуется избегать любого из:

 bash myfile
sh myfile