passar parâmetros Shell
Podemos na implementação de shell script para passar parâmetros para o script, o script usa parâmetros dentro doformato: $ n.n representa um número, um para a primeira execução do parâmetro de script, dois para o segundo parâmetro para executar o script, e assim por diante ptptpt
Exemplos
Os exemplos a seguir passamos três parâmetros para o script, e saídas, onde $ 0 é o nome do arquivo para executar:
#!/bin/bash # author:本教程 # url:www.w3write.com echo "Shell 传递参数实例!"; echo "执行的文件名:$0"; echo "第一个参数为:$1"; echo "第二个参数为:$2"; echo "第三个参数为:$3";
Definir permissões executáveis para o script e executar o script, a saída é a seguinte:
$ chmod +x test.sh $ ./test.sh 1 2 3 Shell 传递参数实例! 执行的文件名:./test.sh 第一个参数为:1 第二个参数为:2 第三个参数为:3
Além disso, existem vários parâmetros para lidar com caracteres especiais:
a manipulação dos parâmetros | explicação |
---|---|
$ # | O número de parâmetros passados para o script |
$ * | Em uma única corda exibe todos os parâmetros passados para o script. Tal como "$ *" com "" "caso encerrado, a forma de" $ 1 $ 2 pt. $ n "saída de todos os parâmetros. |
$$ | O actual número de ID do processo do script é executado |
$! | Finalmente, um processo a correr no fundo número ID |
$ @ | * $ Com o mesmo, mas quando você usar aspas, e retorna cada parâmetro entre aspas. Tal como "$ @" com "" "caso encerrado, a forma de" $ 1 "" $ 2 "pt." $ n "saída de todos os parâmetros. |
$ - | Shell exibe a opção atual para usar, e definir o comando a mesma função. |
$? | Exibe status de saída do último comando. 0 indica que não há erros, e qualquer outro valor indica um erro. |
#!/bin/bash # author:本教程 # url:www.w3write.com echo "Shell 传递参数实例!"; echo "第一个参数为:$1"; echo "参数个数为:$#"; echo "传递的参数作为一个字符串显示:$*";
Executar o script, a saída é a seguinte:
$ chmod +x test.sh $ ./test.sh 1 2 3 Shell 传递参数实例! 第一个参数为:1 参数个数为:3 传递的参数作为一个字符串显示:1 2 3
$ * E diferença de US $ @:
- O mesmo ponto: todas as referências a todos os parâmetros.
- Diferenças: apenas refletia entre aspas duplas. Suponha que o script é executado quando se escreve os três parâmetros 1,2,3 ,, "*" é equivalente a "123" (passar um parâmetro), e "@" é equivalente a "1", "2", " 3 "(passado três parâmetros).
#!/bin/bash # author:本教程 # url:www.w3write.com echo "-- \$* 演示 ---" for i in "$*"; do echo $i done echo "-- \$@ 演示 ---" for i in "$@"; do echo $i done
Executar o script, a saída é a seguinte:
$ chmod +x test.sh $ ./test.sh 1 2 3 -- $* 演示 --- 1 2 3 -- $@ 演示 --- 1 2 3