English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Podemos passar parâmetros para o script ao executar o Shell e obter o formato dos parâmetros dentro do script:$n.n Representa um número,1 O primeiro parâmetro para executar o script,2 O segundo parâmetro para executar o script, por exemplo...
No exemplo a seguir, passamos três parâmetros para o script e os exibimos separadamente, onde $0 O nome do arquivo executado (incluso o caminho do arquivo):
#!/bin/bash # author:Manual Básico # url:pt.oldtoolbag.com echo "Exemplo de Passagem de Parâmetros do Shell!"; echo "O nome do arquivo executado: $0"; echo "O primeiro parâmetro é: $"1"; echo "O segundo parâmetro é: $"2"; echo "O terceiro parâmetro é: $"3";
Defina permissões de execução para o script e execute o script, o resultado é como follows:
$ chmod +x test.sh $ ./test.sh 1 2 3 Exemplo de Passagem de Parâmetros do Shell! O nome do arquivo executado: ./test.sh O primeiro parâmetro é:1 O segundo parâmetro é:2 O terceiro parâmetro é:3
Além disso, há alguns caracteres especiais usados para processar parâmetros:
Processamento de parâmetros | Descrição |
---|---|
$# | Número de parâmetros passados ao script |
$* | Exiba todos os parâmetros passados ao script em uma única string. Como "$"*Caso os parâmetros sejam delimitados por ""1 $2 Imprima todos os parâmetros na forma de "… $n". |
$$ | O ID do processo atual em execução do script |
$! | O último ID do processo em execução no plano de fundo |
$@ | idêntico a $*idêntico, mas usando-o com aspas, e retornando cada parâmetro dentro das aspas. Como no caso de "$@" encerrado com "", usando "$"1" $2"… $n" para exibir todos os parâmetros. |
$- | Exibir as opções atuais usadas pelo Shell, equivalente aComando setFunções idênticas. |
$? | Exibir o estado de saída da última comando. 0 indica que não houve erro, qualquer outro valor indica que houve erro. |
#!/bin/bash # author:Manual Básico # url:pt.oldtoolbag.com echo "Exemplo de Passagem de Parâmetros do Shell!"; echo "O primeiro parâmetro é: $"1"; echo "Número de parâmetros: $#"; echo "Os parâmetros passados são exibidos como uma string: $"*";
Executar o script, os resultados de saída são exibidos conforme abaixo:
$ chmod +x test.sh $ ./test.sh 1 2 3 Exemplo de Passagem de Parâmetros do Shell! O primeiro parâmetro é:1 Número de parâmetros:3 Os parâmetros passados são exibidos como uma string:1 2 3
$* Diferenças em relação ao $@:
Similaridades: Ambos referem-se a todos os parâmetros.
Diferenças: Apenas se manifestam dentro de aspas duplas. Suponha que três parâmetros sejam escritos durante a execução do script 1、2、3, 则 " * " é equivalente a "1 2 3"(Foi passado um parâmetro), enquanto "@" é equivalente a "1" "2" "3"(Foram passados três parâmetros).
#!/bin/bash # author:Manual Básico # url:pt.oldtoolbag.com echo "-- \$* Demonstra ---" for i in "$"*"; do echo $i done echo "-- \$@ Demonstra ---" for i in "$@"; do echo $i done
Executar o script, os resultados de saída são exibidos conforme abaixo:
$ chmod +x test.sh $ ./test.sh 1 2 3 -- $* Demonstra --- 1 2 3 -- $@ Demonstra --- 1 2 3