Dentro do meu script bash, eu gostaria de analisar zero, um ou dois parâmetros (o script pode reconhecê-los) e depois encaminhar os parâmetros restantes para um comando chamado no script. Como eu posso fazer isso?
bash
command-line
Łukasz Lew
fonte
fonte
$@
trata essencialmente cada elemento da matriz como uma sequência de caracteres citada - eles são transmitidos sem oportunidade de expansão. Também garante que cada um seja visto como uma palavra separada. Esta explicação junto com um script de teste demonstrando a diferença está aqui: tldp.org/LDP/abs/html/internalvariables.html#APPREFO bash usa o comando shift :
por exemplo shifttest.sh:
shifttest.sh 1 2 3 produz
fonte
$1
sem citá-los como"$1"
, o shell executará a divisão de palavras, portanto, por exemplofoo bar
, será encaminhado comofoo
ebar
separadamente.O Bash suporta parâmetros de subconjunto (consulte Subconjuntos e substrings ), para que você possa escolher quais parâmetros processar / passar assim.
abra um novo arquivo e edite-o: vim
r.sh
:executá-lo:
o resultado é:
fonte