Shell脚本基本运算(一)

乘法运算

  • 计算num1 * num2的值,控制台输出,返回0代表执行成功
#!/bin/bash
read -p "first number: "  num1
read -p "second number: "  num2
total=$(($num1*$num2))
echo -e "\nThe result of $num1 * $num2 =  $total"
exit 0

在这里插入图片描述

read -p "提示信息 " 变量名
将用户输入的信息赋予变量名
四则运算格式: $((运算内容))
echo -e
-e代表 对后面的命令  \n进行转换

test 语法

#!/bin/bash
echo -e  "please input a filename,I will check it isn‘t exits ,type and permission \n: " fileName
read -p "input a filename: " filename
echo "输入的文件名称是: " $filename
#验证文件名是否为空字符串
test -z $filename&&echo "you must input a filename"&& exit 1
#判断当前目录下文件是否存在
test ! -e $filename&&echo "the file is not exist"&& exit 2
#该文件类型是文件
test -f $filename&&filetype="file"
#获取文件夹
test -d $filename&&filetype="dir"
#验证文件的权限
test -d $filename&&per="d"
test -r $filename&&per="r"
test -w $filename&&per="w"
echo "the filename: $filename is a $filetype"
echo -e "\n $filename permission is : " $per
exit 0

图片演示

判断符号[](基本和test相同)

  • [ ] 脚本范例(注意[]和脚本之间保留空格)
  • == 和 != 用于比较字符串
  • 整数比较只能使用 -eq, -gt,ge,le 这种形式
  • [ ] 中的逻辑与和逻辑或使用 -a 和 -o表示
  • &&、 || 、< 和 > 、操作符出现在 [ ] 中会报错-
 #!/bin/bash
#显示用户输入的是yes or no
read -p "请输入Y/N: " yn
[ $yn == "Y" -o $yn == "y" ]&&echo "choice yes"&&exit 0
[ $yn == "N" -o $yn == "n" ]&&echo "choice no"&&exit 1
  • 注意: [ 与 ] 之间保留空格, == 之间两端保留空格
    在这里插入图片描述

shell script参数传递

  • $0 当前脚本本身
  • $1 第一个参数
  • $# 参数的数量
  • $@ 参数的字符串拼接
  • $* 全部参数
#!/bin/bash
echo "script  name:$0"
echo "参数的个数 : $#"
[ $# -lt 2 ]&& echo "参数个数不能小于2"&&exit 1
echo "first number : $1"
echo "second number : $2"
echo "all agrs $*"
echo  "$@"

在这里插入图片描述

  • 顺便记录下复制的快捷键, ecs模式下, 光标当前行 2y 代表复制以下两行, o 跳到当前行的末尾, p 粘贴
参数传递偏移

类似代码的指针偏移,shift 后可以跟多个,表示从头移除多少个参数

#!/bin/bash
echo "args number : $#"
echo "args are: $@"
echo "args are: $*"
shift 1
echo "args number : $#"
echo "args are: $@"
echo "args are: $*"

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值