set
페이지 설명에서 bash
man
:
-v Print shell input lines as they are read.
따라서 다음 예제 스크립트는 다음과 같습니다.
#!/usr/bin/env bash
# setv.sh
set -v
foo=bar
echo $foo
출력 생성:
foo=bar
echo $foo
bar
각 줄 앞에 "+"와 같은 문자열을 추가하여 어떤 줄이 스크립트의 줄이고 어떤 줄이 스크립트의 줄의 출력인지 명확하게 표시할 수 있는 방법이 있습니까? 위의 예를 사용하면 원하는 출력은 다음과 같습니다.
+ foo=bar
+ echo $foo
bar
답변1
이런 종류의 출력을 얻으려면 다음을 사용할 수 있습니다.$BASH_COMMAND
예를 들어 추가
trap 'printf "%s %s\n" + "$BASH_COMMAND" >&2' DEBUG
set -x/v
스크립트 상단이 아닌