带空格的参数被视为单独的参数而不是一个参数
Arguments with spaces are seen as separate arguments and not as one argument
我有以下功能
func() { shift 2; func2 $@; }
func2() { echo ; echo ; }
func 1 2 "3 3" "4 4"
我预计 func2
会显示 "3 3"
和 "4 4"
。但是 func2 将这两个 3 视为单独的参数而不是一个参数。
我在这里缺少什么?
如何使 func2 将 "3 3"
视为 arg1 并将 "4 4"
视为 arg2?
您需要在 "$@"
周围使用双引号才能使其正常工作。
我有以下功能
func() { shift 2; func2 $@; }
func2() { echo ; echo ; }
func 1 2 "3 3" "4 4"
我预计 func2
会显示 "3 3"
和 "4 4"
。但是 func2 将这两个 3 视为单独的参数而不是一个参数。
我在这里缺少什么?
如何使 func2 将 "3 3"
视为 arg1 并将 "4 4"
视为 arg2?
您需要在 "$@"
周围使用双引号才能使其正常工作。