Latest web development tutorials

Передача параметров Shell

Мы можем в реализации сценария Shell для передачи параметров сценария, сценарий принимает параметры вформате: $ п.п представляет собой число, 1 для первого выполнения параметра сценария, 2 для второго параметра для выполнения сценария, и так далее ......

примеров

Следующие примеры мы передаем три параметра сценария, и выходы, где $ 0 имя файла для выполнения:

#!/bin/bash
# author:本教程
# url:www.w3big.com

echo "Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";

Установить исполняемые разрешения на сценарий и выполнить сценарий, вывод выглядит следующим образом:

$ chmod +x test.sh 
$ ./test.sh 1 2 3
Shell 传递参数实例!
执行的文件名:./test.sh
第一个参数为:1
第二个参数为:2
第三个参数为:3

Кроме того, существует несколько параметров для обработки специальных символов:

обработка параметров объяснение
$ # Число параметров, передаваемых в скрипт
$ * В одной строке отображаются все параметры, передаваемые в сценарии.
Такие, как "$ *" с "" "посылкой в ​​этом случае, форма" $ 1 $ 2 ... $ п "вывод всех параметров.
$$ Текущий процесс идентификационный номер сценария работает
$! И, наконец, процесс, выполняемый в фоновом режиме идентификационного номера
$ @ * $ С такой же, но когда вы используете кавычки, и возвращает значение каждого параметра в кавычках.
Такие, как "$ @" с "" "посылкой в ​​этом случае, в виде" $ 1 "" $ 2 "..." $ N "вывод всех параметров.
$ - Shell отображает текущий параметр , чтобы использовать, и установите команду и ту же функцию.
$? Отображает статус выхода последней команды. 0 указывает на отсутствие ошибок, а также любое другое значение указывает на ошибку.
#!/bin/bash
# author:本教程
# url:www.w3big.com

echo "Shell 传递参数实例!";
echo "第一个参数为:$1";

echo "参数个数为:$#";
echo "传递的参数作为一个字符串显示:$*";

Выполните сценарий, вывод выглядит следующим образом:

$ chmod +x test.sh 
$ ./test.sh 1 2 3
Shell 传递参数实例!
第一个参数为:1
参数个数为:3
传递的参数作为一个字符串显示:1 2 3

$ * И $ @ разница:

  • То же самое: все ссылки на все параметры.
  • Отличия: только отражение в двойных кавычках. Предположим, что скрипт запускается при написании трех параметров 1,2,3 ,, "*" эквивалентно "123" (передать параметр), и "@" эквивалентно "1", "2", " 3 "(прошло три параметра).
#!/bin/bash
# author:本教程
# url:www.w3big.com

echo "-- \$* 演示 ---"
for i in "$*"; do
    echo $i
done

echo "-- \$@ 演示 ---"
for i in "$@"; do
    echo $i
done

Выполните сценарий, вывод выглядит следующим образом:

$ chmod +x test.sh 
$ ./test.sh 1 2 3
-- $* 演示 ---
1 2 3
-- $@ 演示 ---
1
2
3