shell基础及变量符号
- 当shell脚本具有可执行权限时,用bash filename与./filename执行脚本是没有区别得。./filename是因为当前目录没有在PATH中,所以”.”是用来表示当前目录的。
- source filename:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。
- bash filename 重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,子shell新建的、改变的变量不会被带回父shell。子shell继承父shell的环境变量:
- 变量名由数字、字母、下划线组成;
- 必须以字母或者下划线开头,不能以数字开头
- 不能使用 Shell 里的关键字(通过 help 命令可以查看保留关键字)。
|
[ expression ]
|
[ 1 -eq 1 ]
|
|
|
描述
|
实例
|
|
-eq, equal
|
等于
|
[ 1 -eq 1 ] 为true
|
|
-ne, not equal
|
不等于
|
[ 1 -ne 1 ] 为false
|
|
-gt, greate than
|
大于
|
[ 1 -gt 1 ] 为false
|
|
-lt, lesser than
|
小于
|
[ 1 -lt 1 ] 为false
|
|
-ge, greate or equal
|
大于或者等于
|
[ 1 -ge 1 ] 为false
|
|
-le, lesser or equal
|
小于或者等于
|
[ 1 -le 1 ] 为false
|
|
运算符
|
描述
|
实例
|
|
==
|
等于
|
[ "a" == "a" ] 为true
|
|
!=
|
不等于
|
[ "a" != "a" ] 为false
|
|
-n
|
字符串长度不等于 0 为真
|
VAR1=1;VAR2=""
[ -n "$VAR1" ]为 true
[ -n "$VAR2" ]为 false
|
|
-z
|
字符串长度等于 0 为真
|
VAR1=1;VAR2=""
[ -z "$VAR1" ]为false
[ -z "$VAR2" ]为 true
|
|
测试符
|
描述
|
实例
|
|
-e
|
文件或者目录存在为真
|
[ -e path ] path 存在为 true
|
|
-f
|
文件存在为真
|
[ -f file_path ] 文件存在为 true
|
|
-d
|
目录存在为真
|
[ -d dir_path ] 目录存在为 true
|
|
-r
|
有读权限为真
|
[ -r file_path ]file_path有读权限为真
|
|
-w
|
有写权限为真
|
[ -r file_path ]file_path有写权限为真
|
|
-x
|
有执行权限为真
|
[ -r file_path ]file_path有执行权限为真
|
|
运算符
|
描述
|
实例
|
|
!
|
非关系,条件结果取反
|
[ ! 1 -eq 2 ]为true
|
|
-a
|
和关系,在[]表达式中使用
|
[ 1 -eq 1 -a 2 -eq 2 ]为true
两者都为真才为真
|
|
-o
|
或关系,在[]表达式中使用
|
[ 1 -eq 1 -o 2 -eq 1 ]为true
两者有一真则为真
|
|
运算符
|
描述
|
|
+
|
加法
|
|
-
|
减法
|
|
*
|
乘法
|
|
/
|
除法
|
|
%
|
取余
|
|
运算表达式
|
实例
|
|
$(())
|
$((1+1))
|
|
$[]
|
$[]
|
|
命令
|
描述
|
实例
|
|
let
|
赋值并运算,支持++、--
|
let VAR=(1+2)*3 ; echo $VAR
x=10 ; y=5
let x++;echo $x 每执行一次 x 加 1
let y--;echo $y 每执行一次 y 减 1
let x+=2 每执行一次 x 加 2
let x-=2 每执行一次 x 减 2
|
|
expr
|
乘法*需要加反斜杠转义\*
|
expr 1 \* 2 运算符两边必须有空格
expr \( 1 + 2 \) \* 2 使用双括号时要转义
|
|
bc
|
计算器,支持浮点运算、平方等
|
bc 本身就是一个计算器,可直接输入命令,进入解释器
echo 1 + 2 |bc 将管道符前面标准输出作为 bc 的标准输入
echo "1.2+2" |bc
|
shell基础及变量符号的更多相关文章
- Shell基础-环境变量配置文件
Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...
- shell基础及变量
一 Shell概述 1.Shell的作用——命令解释器,“翻译官” shell作为一个人机接口,用于解释用户输入的命令,将命令解释为Linux内核可以执行的2进制代码,并将执行的结果返回在标准终端上. ...
- centos shell基础 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 nohup & 后台运行 cut,sort,wc ,uniq ,tee ,tr ,split, paste cat> 2.txt <<EOF 通配符 glob模式 发邮件命令mail 2015-4-8 第十二节课
centos shell基础知识 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 ...
- shell基础、变量、相关脚本
目录 一.shell基础 书写规范 引号 配置文件 read交互 脚本调式 小节总结 二.变量 变量类型 位置变量 状态变量 替换和删除 变量补充 变量运算 小节总结 三.相关脚本面试题 统计hist ...
- Linux Shell基础篇——变量
一.Shell中的变量 注:这里所说的Shell是Bash Shell,我姑且统称为Shell. Shell中的变量分为用户自定义变量.环境变量.位置参数变量.预定义变量.在Shell中,变量的默认类 ...
- Shell基础:变量类型 & 运算符
Shell变量 Shell支持三种类型的变量 用户自定义变量:用户自定义的变量,变量名以英文字母或下划线开头,区分大小写. 位置变量:根据位置传递参数给脚本的变量,默认支持9个位置变量 $1,$2,$ ...
- Linux Shell基础 位置参数变量、预定义变量
位置参数变量 在 Linux 的命令行中,当一条命令或脚本执行时,后面可以跟多个参数,我们使用位置参数变量来表示这些参数.其中,$0 代表命令行本身,$1 代表第 1 个参数,$2 代表第 2 个参数 ...
- Linux Shell基础 环境变量
环境变量 环境变量和用户自定义变量最主要的区别在于,环境变量是全局变量,而用户自定义变量是局部变量.用户自定义变量只在当前的 Shell 中生效,而环境变量会在当前 Shell 和这个 Shell 的 ...
- Shell基础之四 变量与运算
shell变量与运算 变量存在于内存中.假设变量str,设置或修改变量属性时,不带$号,只有引用变量的值时才使用$号.也就是说在内存中,标记变量的变量名称是str,而不是$str. 变量数据的存储方式 ...
随机推荐
- @GeneratorValue与@GenericGenerator注解使用心得
参考博主们的 http://blog.csdn.net/tianxiezuomaikong/article/details/64930151
- ASP.NET Core模块化前后端分离快速开发框架介绍之4、模块化实现思路
源码 GitHub:https://github.com/iamoldli/NetModular 演示地址 地址:https://nm.iamoldli.com 账户:admin 密码:admin 前 ...
- 再谈Drupal 7.X的性能优化运行速度问题
D6升级D7之后,性能着实让人头大,不妨参考下面文章,另外站内搜索DOOOOR里其他优化文章,中西医结合吧.其中CDN和BOOST效果还可以,其他的没试过. 1,服务器 Web服务器建议,推荐使用HA ...
- pat1099. Build A Binary Search Tree (30)
1099. Build A Binary Search Tree (30) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN ...
- jQuery图片组展示插件----Galleria使用简介
1.技术目标 掌握Galleria插件的基本操作 2.Galleria简介 Galleria是一个jQuery插件,可用于展示多张图片,操作也比较简单, 展示效果也非常不错,如图: 提示:Galler ...
- 《大话设计模式》num01---简单工厂模式
2017年12月10日 20:13:57 独行侠的守望 阅读数:128更多个人分类: 设计模式编辑版权声明:本文为博主原创文章,转载请注明文章链接. https://blog.csdn.net/xia ...
- java.sql.SQLException: Zero date value prohibited 报错分析
今天在使用 iReview 复习词条时,发现 review 页面始终不会跳到下一个词条,应该是前台或者后台出现 BUG 了. 查看浏览器控制台,看到 500 报错,那应该是后台的问题. 登录后台,先查 ...
- SSM整合笔记
SSM整合笔记 1,创建maven项目 创建maven项目过程省略 ps:如果创建完maven项目之后项目报错,可能是没有配置Tomcat 2,在pom.xml里面导入相应的jar的依赖 <pr ...
- blog 题解目录
洛谷: 1.P2430 严酷的训练 2.CF784E Twisted Circuit 3.P1886 滑动窗口 4.P1090 合并果子 5.P1119 灾后重建 6.P1690 贪婪的Copy 7. ...
- Sometimes it takes going through something so awful to realize the beauty that is out there in this world.
Sometimes it takes going through something so awful to realize the beauty that is out there in this ...