我有一个 bash 函数,它将所有参数传递给另一个b
过去运行良好的函数。
a () {
b "$@"
}
a -input /input -output "with blanks"
现在我想修改一些参数并将更新的参数传递给b
.
我正在考虑重建$@
一个变量的副本ARGV
。我曾尝试使用“、”甚至制表符来保留这些字段。但它们都失败了。
你有什么好主意吗?
$@ 的数据类型是什么以及为什么它正确捕获字段?
参考
使用 '
ARGV=""
while [ $# -ne 0 ] ; do
case "$1" in
-*)
ARGV="$ARGV $1 '$2'"
shift; shift; continue;;
esac
done
使用 ”
ARGV="$ARGV $1 \"$2\""
使用选项卡
IFS=$'\t'
ARGV="$ARGV $1 "$'\t'"$2"$'\t'