我有两个脚本。
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?
答案 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 "$@"