Shell基本语法--变量

定义变量与获取变量的值

定义变量时 = 两端不能有空格

var_a=123           # 不可以有空格
var_b='123 1456'    # 值中可以有空格 不可以引用变量
var_c="123 $var_a"  # 值中可以有空格 可以引用变量

var_a=456 			# 变量再次赋值时会替换掉原来的值

echo $var_a			# 获取变量值
echo ${var_a}		# 获取变量值
Shell 参数中各种符号的含义
# ---- 普通变量 ----
$var_a      # 获取变量 var_a 的值
${var_a}    # 获取变量 var_a 的值
${#var_a}   # 获取变量 var_a 中的字符个数, 因为shell中变量一切值都默认为字符串

# ---- 数组变量 ----
${arr[@]}   # 获取数组 arr 所有元素
${arr[*]}   # 获取数组 arr 所有元素
${#arr[@]}  # 获取数组 arr 中元素总数
${#arr[*]}  # 获取数组 arr 中元素总数

# ---- 位置参数 ----
$0          # 获取位置参数的值
${10}       # 获取位置参数的值
$#          # 获取位置参数的总数, 不包括脚本文件名
$@          # 获取所有位置参数, 不包括脚本文件名
$*          # 获取所有位置参数, 不包括脚本文件名
# 关于位置参数的注意点: 
# $0 代表脚本名称
# $1 $2 $3 $4 $5 $6 $7 $8 $9  这几个参数可以用 $数字 的方式获取, 也可以用 ${数字} 的方式获取
# ${10} ... ${n} 第10个及以后的位置参数都只能用 ${数字} 的方式获取

# ---- 命令置换 ----
$(ls -l)    # 命令置换, 推荐用法
`ls -l`     # 命令置换, 不推荐使用, 容易和单引号混淆
$@ 与 $*的区别

$@$*的区别: 不加引号时没有任何区别, 加引号时, "$@"不变化, "$*"会将所有参数合并为一个参数. 例如: test.sh

#!/bin/bash
for item in "$@";do
	echo $item
done
echo "-------------------"
for item in "$*";do
	echo $item
done

# 执行 test.sh a  b  c
# 输出
a
b
c
-------------------
a b c
变量操作
# 清空变量, 销毁变量
var_a="I am nothing."
unset var_a

# 设置变量只读
readonly var_a="I am very importent."
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__万波__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值