shell

Shell编程_教程网站


misc

  • 调试 sh -x xxxsh

  • 前后要有空格

  • Str1 =~ str2 包含

echo “`ls -a`” #返回ls的输出 要使用命令替换

#comments


执行

Date

D1=$(date)

  • 以上两条都执行了date指令 ,不过后一条把输出返回了

lock=$(./pcieserver -I 130 -d 1)


引用

  • 单引号

  • 双引号

  • 反斜杠\


命令替换

  • 反引号

  • $()


预定义变量/特殊变量

$#

  • 表示位置参数的数量

$*

  • 表示所有位置参数的内容

$?

  • 执行上一个程序的返回值
  • 0表示正确执行

$$

  • 表示当前进程的pid

$!

  • 执行上一个背景指令的pid

$0

  • 这个程序的执行名字

$n 这个程序的第n个变量 n=1…9


变量

a=123

b=jkl

c=$(ls)

使用变量

  • echo $a
  • let a=a+789

shell没有变量类型之说,只有在比较的时候有字符串和整数之说


比较

整数

  • -eq

  • -ne

  • -ge

    • 大于等于
  • -gt

  • -lt

  • -le

字符串

  • -z 空串
  • -n 非空串
  • =
  • !=
#如果$a等于a*(字符匹配),那么结果为true
if [ "$A" == "a*" ];then
echo "==/"a*/""
fi#如果$1等于a*(字符匹配),那么结果为true  $1为第一个参数
if [ "$1" == "--clean" ];then
echo "==/"--clean/""
fiif [ "$1" == "--help" ] || [ "$1" == "-h" ];then
echo "==/"--help/""
fi

0为真 1为假

demo

#!/bin/bashlock=$(./pcieserver -I 130 -d 1)
status="0x40"
until [[ "$lock" =~ $status ]]
dolock=$(./pcieserver -I 130 -d 1)Echo $lock
done
if [[ $lock  = ~ $status ]]
thenecho "clock is 0x40 locked"echo "config ToD load"todload1=$(./pcieserver -w 0x6004 -v 0x00000000 -d 1)todload2=$(./pcieserver -w 0x6000 -v 0x00000001 -d 1)todload3=$(./pcieserver -w 0x6000 -v 0x00000000 -d 1)echo "config Loopback"lp=$(./pcieserver -w 0x20008 -v 0xc0000000 -d 1)r1=$(./pcieserver -w 0x20000 -v 0x1 -d 1)r0=$(./pcieserver -w 0x20000 -v 0x0 -d 1)fi

函数

#!/bin/bash
# author:菜鸟教程
# url:www.runoob.comdemoFun(){echo "这是我的第一个 shell 函数!"
}
echo "-----函数开始执行-----"
demoFun
echo "-----函数执行完毕-----"
 #!/bin/bash
# author:菜鸟教程
# url:www.runoob.comfunWithParam(){echo "第一个参数为 $1 !"echo "第二个参数为 $2 !"echo "第十个参数为 $10 !"echo "第十个参数为 ${10} !"echo "第十一个参数为 ${11} !"echo "参数总数有 $# 个!"echo "作为一个字符串输出所有参数 $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73
  • 在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数…

函数的参数返回

  • 参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255

  • 也可以使用echo 返回值


流程控制

shell笔记本xmind导出相关推荐

  1. shell脚本批量导出MYSQL数据库日志/按照最近N天的形式导出二进制日志[连载之构建百万访问量电子商务网站]...

    shell脚本批量导出MYSQL数据库日志/自动本地导出MYSQL二进制日志,按天备份[连载之构建百万访问量电子商务网站] 出处:http://jimmyli.blog.51cto.com/我站在巨人 ...

  2. Shell脚本导入导出数据

    个人博客 个人博客: https://www.crystalblog.xyz/ 备用地址: https://wang-qz.gitee.io/crystal-blog/ 1. 介绍 在工作中 , 很多 ...

  3. shell把文件导出 怎么通过adb,adb文件管理命令操作实例讲解

    文件管理命令(FileManger) 1.  adb pull [local] 从一个设备或虚拟机下载一个指定文件到电脑. 不指定下载路径:adb pull /sdcard/Music/Honor.m ...

  4. Shell编程中的“局部变量”和“导出变量” (export 用法)

    本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 如果你对子Shell的概念不甚了解,如果你对export的用法还没吃透 ...

  5. xmind试用导出无水印_Xmind zen 2020导出png/pdf去水印(Linux版)

    2020.2.16 网上很多关于xmind去水印的操作都是基于windows/mac版的, 很少有关于linux版去水印的具体操作! 下面我就说说ubuntu下xmind zen 2020版去水印的方 ...

  6. 【测试技能分享】xmind思维导图导出excel层级表格转换为测试场景案例分享实践附脚本

    1.通过xmind输出测试场景: 每个项目不同,xmind不一内容不一致,可按自己负责项目或测试模块进行测试场景设计 2.导出excel 通过xmind导出功能,输出excle 3.通过python脚 ...

  7. shell 中diff返回值_LINUX(中)

    什么是Shell? Shell 是 Linux 的命令解释器,用于解释用户对操作系统的操作 cat /etc/shells CentOS 7 默认使用的 Shell 是 bash 命令执行的具体过程: ...

  8. Shell脚本攻略02-玩转变量与环境变量

    概述 变量是任何一种编程语言都必不可少的组成部分,用于存放各类数据. 脚本语言通常不需要在使用变量之前声明其类型.只需要直接赋值就可以了. 在Bash中,每一个变量的值都是字符串. 无论你给变量赋值时 ...

  9. shell编程基础-简述

    1.1 前言 1.1.1 为什么学Shell Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, Linux/UNIX系统的底层及基础应用软件的核心大都涉及Shell脚 ...

最新文章

  1. 真正的博士是如何参加AAAI, ICML, ICLR等AI顶会的?
  2. python先序、中序、后序排序
  3. python操作mysql操作步骤
  4. 学会使用ant design封装一个锚点组件
  5. java 生成zip如法打开_Java创建ZIP压缩文件的方法
  6. python和java的区别-Python和Java的区别有哪些?如何选择?
  7. java string对象创建_Java问题解析:到底创建了几个String对象
  8. 2022 最新分布式面试题合集,轻松应对 Java 面试
  9. 总结之使用lowagie.text添加PDF水印
  10. C# 使用Panel控件实现窗体嵌套
  11. 李沐动手学深度学习-kaggle实战:房价预测
  12. PyQt5+opencv鼠标滚轮设置图片亮度
  13. Kaldi中文语音识别:各种开源的已经训练好的语音识别模型
  14. Vuforia开发问题记录(四)------- Vuforia AR项目在小米8 SE上运行黑屏
  15. 利用python和递归实现赶鸭子问题
  16. 几款好用的报表制作软件!!!
  17. linux 压缩固定大小,tar gz压缩文件为指定大小
  18. 汇总:不同格式文件怎么转换成PDF?
  19. iPhone的解锁、越狱、激活、固件等等是什么意思,有什么分别?(转)
  20. 中乾山东最专业众筹系统

热门文章

  1. hyper-v服务器系统安装,hyper-v server 2012 安装部署记录
  2. 2016年第8本:不可思议的心理控制实验
  3. android 代码删除快捷方式,Android创建快捷方式以及删除快捷方式
  4. r510服务器开机无显示,联想B320i开机无显示维修案例
  5. vue-router.esm-bundler.js?6c02:1474 Uncaught TypeError: Cannot read property ‘forEach‘ of undefined
  6. 一个典型的微型计算机绘图系统,机械制图考试理论知识练习题
  7. 用jQuery添加dragstart,dragover和drop事件,实现拖拽效果
  8. 微信小程序销毁某一注册函数_微信小程序注销手册
  9. web前端本科未拿到学位证_您是否需要计算机科学学位才能成为成功的Web开发人员...
  10. 全球各国人口密度(1961-2018年)