我有两个脚本。
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 to foo shebang的Shebang吗?
如果要消耗第一个参数并在匹配特定模式集时将其传递给外壳解释器,则可以自己做:
# treat first argument of -x or -v as intended for the shell interpreter
case $1 in -[xv]) set "$1"; shift;; esac
source "$@"