shell札记
1.echo变量名的技巧
#! /bin/bash
read -p "please input value a: " a
declare -i ai=a
echo -e "ai=$ai \bok"
在这一行代码中,先输入a的值,是一个字符串。然后通过declare命令通过字符串“a”来定义ai的整数值,然后我们想把ai输出出来,可以直接用echo "ai=$ai"来完成。但是如果我们想在后面再输出一些字符串呢?可以用一个空格分隔,然后定义想要输出的字符串。然是如果我们不想空格呢?可以给echo添加-e参数,然后用\b进行退格,就ok了。
num=
echo "this is the ${num}nd"
刚刚看到一个最方便的方法。
2.判断结构中注意空格
if [ $ai = ]; then
echo "ai=$ai"
else
echo "ai is false"
fi
注意判断语句“[ $ai = 666 ];”中的四个空格,不隔开就会报错。
3.判断(A or B) and (C or D)
#! /bin/bash
#(A or B) and (C or D)
#(A or B)
test true
A=$? #A=
test false
B=$? #B=
AorB=
if [ $[A] -eq -o $[B] -eq ];then
AorB=
fi #AorB=
test true
C=$? #C=
test false
D=$? #D=
CorD=
if [ $[C] -eq -o $[D] -eq ];then
CorD=
fi #CorD=
if [ $[AorB] -eq -a $[CorD] -eq ];then
echo "(A or B) and (C or D) is true"
else
echo "(A or B) and (C or D) is false"
fi
4.将命令执行结果保存在变量中
var=$(命令)
var=`命令` # 注意此处不是普通的单引号
shell札记的更多相关文章
- linux shell 札记
shell 数组 数组索引: 单个元素索引: ${array[n]} 全部元素: ${array[*]} 或者 ${array[@]} 部分索引: ${array[2:]} 数组所有元素统一加 ...
- Linux shell编程札记
if-then的高级特性 [[]].[]都是用来测试( 测试分为数值比较.字符串比较.文件比价 )的,[[]]是关键字,里面可以用&&.||.<.>等类似C语言的语法:[] ...
- 愚人的linux内核2440移植札记(超曲折版)
http://blog.csdn.net/dreambegin/article/details/6904822 原来文章叫--编译内核之初体验.后来想了想,这篇文章让我体验了好多遍.不该叫这么大气的名 ...
- Java面试札记
Java面试札记 在最深的夜里,即使是你的影子也会离你而去. 背景:愿某人在中秋节之前吃上大厂月饼!!!@CDZ 1.Java的八种基本数据类型? 整型:byte.int.short.long: 浮 ...
- Shell替换
如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. #!/bin/bash a= echo -e "Value of a is ...
- Shell特殊变量
$ 表示当前Shell进程的ID,即pid $echo $$ 运行结果 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数.例如,第一个参数 ...
- shell变量
定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.同时,变量名 ...
- 第一个shell脚本
打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好. #!/bin/bash echo "Hello World !" &quo ...
- shell简介
Shell作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. shell使用的熟练程度反映了用户对U ...
随机推荐
- Advanced-REST-client 获取及安装
作为一个java开发人员,大家或多或少的要写或者接触一些http接口.而当我们需要本地调试接口常常会因为没有一款好用的工具而烦恼.今天要给大家介绍一款非常好用.实用且方便的http接口测试工具. 获取 ...
- Spring AOP 复习
Aspect Oriented Programming 通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术,利用aop可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降 ...
- 【转载】使用宝塔Linux面板屏蔽某些IP访问你的服务器
在服务器的运维过程中,有时候发现一些异常IP或者扫描漏洞攻击者IP访问你的网站,此时如果想屏蔽该IP访问你的服务器,可以通过云服务器厂商提供的安全组进行设置.如果服务器安装有宝塔面板,也可以通过宝塔面 ...
- Android-----WebView加载HTML界面布局并进行数据交互
注:在做例子之前要先做好准备工作,在app下新建一个名为:assets的目录(不懂怎么创建的可参考:https://blog.csdn.net/Biegral/article/details/4717 ...
- 【OS_Windows】Win10应用商店闪退和点击Cortana搜索框闪退的解决方法
Windows10用户遇到了打开应用商店时闪退和点击Cortana小娜搜索框闪退的问题,并且在微软社区求助,得到了一种可行的解决方法,那就是查看Network List Service(网络列表服务) ...
- SQL注入之Sqlmap使用
我们都知道,对于网络渗透最重要的一步是要拿到后台数据库管理员的密码与用户名,那么怎么得到这个用户名和密码呢?就要用到今天所说的Sqlmap,它不仅适用于内网环境,在外网环境也是非常受欢迎的,并且在Ka ...
- Example-based Machine Learning是什么?
参考:https://christophm.github.io/interpretable-ml-book/proto.html EML简介 Example-based Machine Learnin ...
- 锤子手机做appium自动化测试时,运行脚本总是弹出警告框的问题
当运行脚本的时候,总是提示若干个如上提示框,必须点击同意才能进行下一步:解决方案: 在设置,全局高级设置,开发者选项中打开“总是允许USB安装应用”即可解决:
- springboot项目突然启动缓慢
在项目快到最后的时候,有一次在本地启动项目的时候,突然发现项目启动起来特别的慢. 刚开始也不知道哪里出了问题,只能慢慢的查原因. springboot项目在debug模式下本来运行的挺快,后来某一天突 ...
- CSS进阶之路
下面主要引用http://www.cnblogs.com/wangfupeng1988/tag/css知多少/ CSS进阶笔记: 一.学习CSS的三个突破点 1.浏览器如何加载和解析CSS——CSS的 ...