如何在 Bash 参数中保留空格

如何在 Bash 参数中保留空格

我使用以下命令:

cm1 cm2 arg1 arg2 'argument 3'

它首先转到cm1,然后重定向arg1 arg2 'argument 3'到另一个文件。

/usr/bin/cm1

#! /bin/bash
# some script here
shift
cm2 $@

/usr/bin/cm2

echo $#
# This returns 4 in lieu of 3 because the white space in 'argument 3' causes the argument to be split into two arguments.

那么,如何将参数从一个脚本传递到另一个脚本,并确保空格不会被读为参数分隔符?

答案1

我认为你必须将它重新括在引号中,如下所示:

#! /bin/bash
# some script here
shift
cm2 "$@"

相关内容