shebang中的Bash跟踪模式(bash -x)

CMC*_*kai 5 bash

为什么这种风格有效:

#!/bin/bash -x
#...
Run Code Online (Sandbox Code Playgroud)

但这不是吗?

#!/usr/bin/env bash -x
#...
Run Code Online (Sandbox Code Playgroud)

它给了我一个未找到的错误.跟踪模式需要稍后设置set -x

请注意我可以使用#!/usr/bin/env bash.

Alf*_*lfe 9

shebang-line机制只解析第一个空格,并将该行的其余部分作为一个参数传递给可执行文件,因此写

#!/usr/bin/env bash -x
Run Code Online (Sandbox Code Playgroud)

就像打电话

$ /usr/bin/env "bash -x"
Run Code Online (Sandbox Code Playgroud)

在命令行上.

没有调用可执行文件"bash -x"(命令名称中有空格),因此失败.


Jua*_*doy 7

你可以随时使用:

#!/usr/bin/env bash
set -x
Run Code Online (Sandbox Code Playgroud)