BASH:将一个shebang的论点传递给另一个

时间:2018-02-10 19:07:09

标签: bash shell

我有两个脚本。

temp.sh

#! /usr/bin/foo
echo "$@"

FOO

#! /usr/bin/bash
source "$@"

除了下面的情况,当temp.sh在其shebang中有一个参数时,这是有效的。

temp.sh

#! /usr/bin/foo -x
echo "$@"

这使它成为问题。

/root/foo: line 4: source: -x: invalid option
source: usage: source filename [arguments]

无论如何,我可以通过这个-x(或者就此而言任何和所有参数)传递给temp.sh的shebang到foo的shebang?

1 个答案:

答案 0 :(得分:1)

如果你想使用第一个参数并在匹配特定模式集时将其传递给shell解释器,你可以自己做:

# treat first argument of -x or -v as intended for the shell interpreter
case $1 in -[xv]) set "$1"; shift;; esac

source "$@"