Bash - Split parâmetros citados

2

Eu tenho um script que é chamado com dois parâmetros:

./script.sh a b

Atualmente estou lendo-os por $ 1 e $ 2 (como cd $1 ). Meu problema é que a saída precisa ser a mesma para quando o script é chamado com os parâmetros citados:

./script.sh "a b"

que, se eu entendi corretamente, passa os dois parâmetros para a variável $1 . Existe uma maneira simples e limpa de fazer isso ou preciso verificar o primeiro parâmetro para espaços, dividi-lo em uma matriz, passar partes da matriz em duas variáveis separadas e usá-las em todo o script?

    
por LeonhardEuler 22.02.2015 / 14:10

1 resposta

1

O mais fácil é colocar isso no topo do seu script:

set -- $*

Isso re-expandirá a lista de parâmetros, portanto, quaisquer espaços nos parâmetros se tornarão separadores entre novos parâmetros.

Pode haver algum comportamento complicado se você tiver citações muito complicadas em seus parâmetros (por exemplo, citações citadas), mas meu palpite é que isso provavelmente não acontecerá.

    
por 22.02.2015 / 15:36