fishshell의 xtrace 상당

fishshell의 xtrace 상당

POSIX 셸에 해당하는 것이 있습니까? set -x아니면 셸 에서 실행 중인 명령이 셸에 set -o xtrace표시되도록 합니까 ?fish

답변1

Fish 3.1.0부터 이 fish_trace변수를 사용하면 다음 기능을 사용할 수 있습니다.

> set fish_trace on; isatty; set -e fish_trace
++ source share/fish/functions/isatty.fish
++++ function isatty -d 'Tests if a file descriptor is a tty'
+ isatty
+++ set -l options h/help
+++ argparse -n isatty h/help --
+++ if
+++ set -q _flag_help
+++ end if
+++ if
+++ set -q 'argv[2]'
+++ end if
+++ set -l fd
++++ set fd 0
+++ '[' -t 0 ']'
+ set -e fish_trace

추적 출력의 위치는 --debug-outputFish 프로세스의 옵션에 의해 제어됩니다.

fish 3.1.0 이전에는 fish -p some_trace_filefish 세션을 실행하여 구성 파일을 "some_trace_file"에 출력할 수 있었는데, 이는 거의 동일한 효과를 얻습니다(몇 가지 단점이 있음 - 아래 설명 참조).

답변2

set -o xtracein 과 유사하게 내가 볼 수 있는 가장 가까운 것은 or 호출을 사용하는 zsh것입니다 .fish-d 4--debug-level=4

$ fish -d 4 -c 'echo 1'
fish: Exec job 'builtin source /usr/share/fish/config.fish 2>/dev/null' with id 1
fish: Exec job 'set -g IFS \n\ \t' with id 2
fish: Set status of set -g IFS \n\ \t to 0 using short circuit
fish: Job is constructed
fish: Continue job 2, gid 0 (set -g IFS \n\ \t), COMPLETED, NON-INTERACTIVE
...
fish: Exec job 'echo 1' with id 1
1
fish: Set status of echo 1 to 0 using short circuit
fish: Job is constructed
fish: Continue job 1, gid 0 (echo 1), COMPLETED, NON-INTERACTIVE

관련 정보