How to preserve white space in Bash arguments

Я использую команду:

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 "$@"
Другие вопросы по тегам