Latest web development tutorials

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

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.w3big.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 ... $ 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 "..." $ 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.w3big.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.w3big.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