Pedindo que seu script aceite argumentos que contenham espaço em branco [duplicado]

1

Estou realmente preso no meu script por causa desse problema. Eu preciso do meu script para aceitar argumentos e me dar o resultado, mas desde que eu tenho espaços, só exibe a primeira palavra. por exemplo.

cat open.sh
echo My name is $1

export start='date +"%b %d %k:%M:%S %Y"'

[oracle@spiderman scripts]echo $start
Jul 01 3:03:18 2016

[oracle@spiderman scripts]$sh open.sh 'echo $start'
The time is Jul

Eu preciso da saída como The time is Jul 01 3:03:18 2016.

Eu preciso passar a mesma saída para outro script complexo.

    
por Super 01.07.2016 / 12:19

1 resposta

3

Você deve usar a substituição de comando $() em torno de date like,

export start=$(date +"%b %d %k:%M:%S %Y")
export end=$(date +"%b %d %k:%M:%S %Y")

e altere open.sh com

echo The time is "$1" and end time is "$2"

(Nota: Sempre cita sua variável, veja this )

e execute seu script com um argumento citado como este,

$ sh open.sh "$start" "$end"
The time is Jul 01 20:24:03 2016 and end time is Jul 01 22:19:25 2016
    
por 01.07.2016 / 12:32