Citar $@
:
#!/bin/bash
for a in "$@"
do
echo "$a"
done
Saída:
x y z
Por exemplo, usando este script:
#!/bin/bash
for a in $@
do
echo $a
done
e em execução: ./script "x y" z
retorna:
x
y
z
e não:
x y
z
Por que isso é?
E como eu passaria argumentos de string com espaços para bash?
Eu uso Bash 4.3.33
.
Note que ao lidar com $@
você pode simplificá-lo para
for a
do
echo "$a"
done
If 'in WORDS ...;' is not present, then 'in "$@"' is assumed.
Tags bash