Como preservar espaço em branco em argumentos Bash

2

Eu uso o comando:

cm1 cm2 arg1 arg2 'argument 3'

Primeiro, vai para cm1 , que redirecionará arg1 arg2 'argument 3' para outro arquivo.

/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.

Então, como posso passar argumentos de um script para outro e garantir que o espaço em branco não seja lido como um separador de argumentos?

    
por François ッ Vespa ت 13.03.2012 / 11:24

1 resposta

3

Eu suponho que você tenha que reenviá-lo entre aspas, assim:

#! /bin/bash
# some script here
shift
cm2 "$@"
    
por 13.03.2012 / 11:27