Shell 脚本解释 Bash 位置参数的2个示例
【摘要】 参数是存储值的实体。它可以是名称、数字或一些特殊字符。变量是由名称表示的参数。已经为您设置了一些变量,其中大多数变量无法分配值。
这些变量包含有用的信息,shell 脚本可以使用这些信息来了解它运行的环境。
参数是存储值的实体。它可以是名称、数字或一些特殊字符。变量是由名称表示的参数。已经为您设置了一些变量,其中大多数变量无法分配值。
这些变量包含有用的信息,shell 脚本可以使用这些信息来了解它运行的环境。
Bash 提供了两种参数。
- 位置参数
- 特殊参数
在本文中,让我们通过示例讨论 bash 位置参数。
示例 1:Bash 位置参数 – $0, $1, $2 ..
位置参数是在调用脚本时提供给脚本的参数。它可能从 $1 到 $N。当 N 包含多个数字时,它必须用大括号括起来,如 ${N}。
变量 $0 是程序调用时的基本名称。
以下示例获取两个参数并提供这两个整数之间的算术运算结果。
首先,创建如下所示的算术.sh shell 脚本。
$ cat arithmetic.sh
#!/bin/bash
echo -e "\$1=$1"
echo -e "\$2=$2"
let add=$1+$2
let sub=$1-$2
let mul=$1*$2
let div=$1/$2
echo -e "Addition=$add\nSubtraction=$sub\nMultiplication=$mul\nDivision=$div\n"
接下来,使用适当的参数执行算术.sh,如下所示。
$ ./arithmetic.sh 12 10
$1=12
$2=10
Addition=22
Subtraction=2
Multiplication=120
Division=1
在上面的输出中,$1 的值为 12,$2 的值为 10。
Shell 内置 'let' 允许对 shell 变量执行算术运算。上面的脚本对给定的参数进行算术运算,例如加法、减法、乘法和除法。
示例 2:设置/取消设置 Bash 位置参数
内置的 set 命令用于设置和取消设置位置参数。
首先,创建 positional.sh shell 脚本,如下所示。
$ cat positional.sh
#!/bin/bash
# From command line
echo -e "Basename=$0"
echo -e "\$1=$1"
echo -e "\$2=$2"
echo -e "\$3=$3"
# From Set builtin
set First Second Third
echo -e "\$1=$1"
echo -e "\$2=$2"
echo -e "\$3=$3"
# Store positional parameters with -(hyphen)
set - -f -s -t
echo -e "\$1=$1"
echo -e "\$2=$2"
echo -e "\$3=$3"
# Unset positional parameter
set --
echo -e "\$1=$1"
echo -e "\$2=$2"
echo -e "\$3=$3"
上面的脚本首先打印命令行参数,然后 set command 显式设置位置参数。用 - 指选项结束设置,所有后续参数都是位置参数,即使它们可以以 '-' 开头。使用 '–' 设置,不带任何其他参数,取消设置所有位置参数。
接下来,执行positional.sh,如下所示。
$ ./positional.sh
Basename=t.sh
$1=12
$2=10
$3=
$1=First
$2=Second
$3=Third
$1=-f
$2=-s
$3=-t
$1=
$2=
$3=
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)