English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Passagem de Parâmetros do Shell

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...

Exemplo online

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âmetrosDescriçã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