linux成长记-3.21

shell脚本语法
1  expr 数值运算工具

   注 : 给变量赋值时‘=’号前后没有空格;当进行运算时运算符前后有空格,变量引用前面加$符号

            expr1 \* 3 使用*要加转义符,除不需要转义。

            注意图二使用的是反引号 ` 而不是单引号 '

2 运行方式的差异

(2.sh脚本)

   注 (.  2.sh )与(source  2.sh)作用相同。

   产生上图原因:(sh 2.sh)与(./2.sh)执行命令会产生子进程,脚本执行在子进程中执行,变量为局部变量,不会返回到父进程中。

                           (.  2.sh )与(source  2.sh)执行命令会在当前进程中进行,变量可以被输出显示。

3 变量表达式

3.1适用整数 test   n1  -参数   n2           (真返回0,假返回1)

                                  -lt  小于

                                 -le  小于等于

                                 -gt  大于

                                 -ge 大于等于

                                 -eq等于

                                 -ne不等于

        注 : 可用中括号代替test。例  test  1  -lt  4   等价于  [ 1 -lt 4 ] (表达式与中括号间有空格)

3.2 文件测试    -f    存在且是普通文件
                       -d   存在且是目录
                       -s   存在且字节数大于0
                       -r   存在且可读
                       -w  存在且可写
                       -x   存在且可执行   -e  文件是否存在   
3.3 字符测试   (建议用两个中括号[[   ]])

                       =    , !=    ,  -n  string  测试指定的字符串长度非0

                        -z   字符串的长度为0 , >  如果str1的字母顺序比str2大,则返回真,< 如果str1的字母顺序比str2小,则返回真

3.4 其他

                    !  非运算,表达式为 true则返回 false,否则返回 true[ ! false ] 返回 true。

                     o  或运算,有一个表达式为 true 则返回 true。[ $a -lt 20 -o $b -gt 100 ] 返回 true。

                     a  与运算,两个表达式都为 true 才返回 true。[ $a -lt 20 -a $b -gt 100 ] 返回 false。

4 控制流程

4.1seq命令


4.2 分支结构

if [ $# -eq 0 ]
then
echo “输入了0个参数”
elif[ $# -gt 1 ]
then echo “输入了多个参数”
else echo “输入了1个参数”
fi
case “$#” in
0)echo “输入了0个参数”;;
1)echo “输入了1个参数”;;
*)echo “输入了多个参数”;;
esac
每个分支条件后必须以两个分号结尾

4.3 循环结构

例子:输出100内10的倍数
#for i  in {1..9} (大括号中不能有变量
for  i   in  `seq1 9`(此处可以用变量 如  `seq  $1   9`)
do
echo `expr  $i  \*  10`
done

4.4  read 变量1 [变量2 …]

       可以从键盘上读取多个变量的值,用户输入数据时,以空格或者Tab键作为分隔。

       如果输入的数据个数不够,则从左到右对应赋值,没有输入的变量为空;

       如果输入的数据个数超了,则从左到右对应赋值,最后一个变量被赋予剩余的所有数据。

4.5   break  跳出内部循环      break2   跳出外部循环

        continue   跳出内部判断   continue2   跳出外部判断

5 函数  函数由两部分组成:函数标题和函数体

        所有函数在使用前必须定义。必须将函数放在脚本开始部分,直至shell解释器首次发现它时,才可以使用。 

6 数组

      echo ${array_var[*]}   (打印数组中所有的值 ,单个)

      echo ${array_var[@]}    (打印数组中所有的值,一串)

      echo ${#array_var[*]}   (打印数组长度)

  shell 提供了另外一种数组,其可以使用任意的字符串作为下标(不必是整数)来访问数组元素。这种数组叫做关联数组。

  关联数组的下标和值称为键值对,它们是一一对应的关系。在关联数组中,键是唯一的,值可以不唯一。

  注:在使用关联数组之前,需要使用命令declare -A array 进行显示声明

  例: name=(jimtom lucy)
          declare -A phone
          phone=([jim]=135 [tom]=136 [lucy]=158)
          for i   in `eval  echo {0..$((${#name[*]}-1))}`
          do
               echo ${name[i]} phone number is ${phone["${name[i]}"]}

          done

          ${!array[*]}取关联数组所有键

          ${!array[@]}取关联数组所有键

          ${array[*]}取关联数组所有值

          ${array[@]}取关联数组所有值

          ${#array[*]} 关联数组的长度

          ${#array[@]}关联数组的长度

源码地址: https://pan.quark.cn/s/d1f41682e390 miyoubiAuto 米游社每日米游币自动化Python脚本(务必使用Python3) 8更新:更换cookie的获取地址 注意:禁止在B站、贴吧、或各大论坛大肆传播! 作者已退游,项目不维护了。 如果有能力的可以pr修复。 小引一波 推荐关注几个非常可爱有趣的女孩! 欢迎B站搜索: @嘉然今天吃什么 @向晚大魔王 @乃琳Queen @贝拉kira 第三方库 食用方法 下载源码 在Global.py中设置米游社Cookie 运行myb.py 本地第一次运行时会自动生产一个文件储存cookie,请勿删除 当前仅支持单个账号! 获取Cookie方法 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 按刷新页面,按下图复制 Cookie: How to get mys cookie 当触发时,可尝试按关闭,然后再次刷新页面,最后复制 Cookie。 也可以使用另一种方法: 复制代码 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 控制台粘贴代码并运行,获得类似的输出信息 部分即为所需复制的 Cookie,点击确定复制 部署方法--腾讯云函数版(推荐! ) 下载项目源码和压缩包 进入项目文件夹打开命令行执行以下命令 xxxxxxx为通过上面方式或取得米游社cookie 一定要用双引号包裹!! 例如: png 复制返回内容(包括括号) 例如: QQ截图20210505031552.png 登录腾讯云函数官网 选择函数服务-新建-自定义创建 函数名称随意-地区随意-运行环境Python3....
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值