shell入门一

shell

1、位置参数变量

位置参数变量作用
$nn代表数字nn代表数字,$0代表命令本身,$1~$9代表第一个参数到第九个参数,十以上的参数需要使用大括号表示:${10}${11}
$*这个变量代表命令行中的所有参数,$*把所有的参数看做一个整体【不包含命令本身】
$@这个变量也代表命令行的所有参数,但是$@把每个参数作为一个整体看待【不包含命令本身】
$#这个变量代表命令行中所有参数的个数【不包含命令本身】

test.sh

echo $0
echo $1
echo $2
echo $*
echo $@
echo $#

# $*:循环只会执行一次,一次性输出所有参数
for i in `$*`
do 
 echo $i
done

# $@:有多少个参数,就会执行多少次,每次输出一个参数的值
for i in `$@`
do
 echo $i
done

2、预定义变量

预定义变量作用
$?最后一次执行的命令的返回状态。如果这个变量的值为0,则说明上一个命令正确执行;否则说明命令执行不正确,返回值根据命令自定义
$$当前进程的进程号(PID)
$!后台运行的最后一个进程的进程号

3、变量的声明

#语法
declare [+/-][选项] 变量名
选项说明
-给变量设定类型属性
+取消变量类型属性
-i将变量设定为整数类型
-x将变量声明为环境变量
-p显示指定变量的被声明的类型
# 数值运算方式1【ps:在shell中,所有变量的类型默认都是string】:使用declare指定数值类型做数值运算,不推荐使用
num1=10
num2=20
declare -i sum1=$num1+$num2 

# 数值运算方式2:使用$和expr,不推荐使用
sum2=$(expr $num1 + $num2) #注意:加号左右两侧的空格必须存在,否则报错

# 数值运算方式3:$((运算式)) 和 $[运算式]:$(系统命令),$+()代表的执行的是系统命令
sum3=$(($num1+$num2))sum3=$(( $num1+$num2 )) # 空格检查不是很严格,都可以支持
sum4=$[$num1+$num2]sum4=$[ $num1+$num2 ] # 空格检查不是很严格,都可以支持
变量置换方式变量y没有设置变量y为空值变量y设置值
x=${y-新值}x=新值x为空x=$y
x=${y:-新值}x=新值x=新值x=$y
x=${y+新值}x为空x=新值x=新值
x=${y:+新值}x为空x为空x=新值
x=${y=新值}x=新值
y=新值
x为空
y值不变
x=$y
y值不变
x=${y:=新值}x=新值
y=新值
x=新值
y=新值
x=$y
y值不变
x=${y?新值}新值输出到标准错误输出(就是屏幕)x为空x=$y
x=${y:?新值}新值输出到标准错误输出(就是屏幕)新值输出到标准错误输出(就是屏幕)x=$y
# 数值逻辑运算
a=1
b=2

# 方式一
if [ $a -eq $b ]
then
 echo "1 a is equals b"
else
 echo "1 a is not equals b"
fi

# 方式二
if test $a -eq $b
then
 echo "2 a is equals b"
else
 echo "2 a is not equals b"
fi

# 方式三
if test [$a] -eq [$b]
then
 echo "2 a is equals b"
else
 echo "2 a is not equals b"
fi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值