其他
Shell基础(4)-变量的有效范围、位置变量
每周二、四、六定期更新!
再看变量的有效范围
我们上面已经提到了变量的使用范围,就是在父进程中定义的变量,如果想在子进程中也有效,则可以使用export这个命令来实现。我们明确一下:
环境变量=全局变量
自定义变量=局部变量
定义全局变量:
[root@studyclub ~]# export MYNAME=jason
位置变量
位置变量用来标注命令中的参数的顺序和个数。这些变量是内置变量,使用这些变量,可以通过命令行把参数传递给脚本内部。
$1 $2 $3 ... $n 对应命令行中的第1个,第2个,第3个,... ,第n个参数
$0 代表命令本身
$* 代表命令行中的所有参数,把所以的参数作为一个字符串
$@ 代表命令行中的所有参数,每个参数为独立字符串
$# 代表命令行中有多少个参数
[root@studyclub jason]# cat args.sh
#!/bin/bash
#
# **************************************************************************************
# Author: Jason Zhuo
# Create time: 2021年7月1日17:26:59
# Description: this is a test file for argument.For example: $# $0 $1 $2
# File name: args.sh
# Copyright (C): 2021 All rights reserved
# **************************************************************************************
echo "first argument is $1"
echo "second argument is $2" # 查看第二个参数
echo "10st argument is $10" # 希望查看第10个参数
echo "10st argument is ${10}" # 查看第10个参数
echo "11st argument is $11" # 希望查看第11个参数
echo "11st argument is ${11}" # 查看第11个参数
echo "the script name is $0"
echo "arguments number: $#" # 查看有多少个参数
echo "all args: $@" # 查看有哪些参数
echo "all args: $*" # 查看有哪些参数
下面我们来看看执行的结果:
[root@studyclub jason]# ./args.sh a b c d e f g h i j k l m n o p q r s t
first argument is a
second argument is b
10st argument is a0 # 希望查看第10个参数,但为什么是a0呢?
10st argument is j # 查看第10个参数
11st argument is a1 # 希望查看第11个参数,但为什么是a1呢?
11st argument is k # 查看第11个参数
the script name is ./args.sh
arguments number: 20
all args: a b c d e f g h i j k l m n o p q r s t
all args: a b c d e f g h i j k l m n o p q r s t
$var_name
${var_name} # 这种方式可以避免产生歧义
《Linux基础及进阶》:
看完本文有收获?请分享给更多人
推荐关注「Cloud研习社」,带你从零开始掌握云计算技术!
微信号|bjdream-1
Cloud研习社 ·