shell的变量以及常见符号
shell的变量以及常见符号
常见变量
不同于其它语言需要先声明变量,shell的变量直接使用
eg: a=15
调用变量的话 $a 或者 ${a}
$? #判断上一条命令执行的是否成功 0成功 返回其他 错误
写一个脚本做演示
执行
$0 #返回脚本的文件名称
$1-$9 #返回对应的参数值
$* #返回所有的参数值是什么
$# #返回参数的个数和
常见的几个符号
> #会覆盖原有的内容
^c是结束符号
>> #不会覆盖原有的内容
; #执行多条命令
不加;报错
| #管道符
&& #前面的命令执行成功,后面的才可以执行
|| #前面的命令执行失败,后面的才可以执行
"" #会输出变量值
'' #输出本身
`` #输出命令结果 eg:a=`date`;echo $a (反撇号)
2>/dev/null #错误输出到无底洞(垃圾桶)
1>/dev/null #正确输出到无底洞
秒变计算器的运算符
整数:
加:(加号两边一定要加空格 否则是表达式)
expr 12 + 6 expr $a + $b
echo $[12 + 6] echo $[a + b]
echo $((12 + 6)) echo $((a + b))
减:
expr 12 - 6 expr $a - $b
echo $[12 - 6] echo $[a - b]
echo $((12 - 6)) echo $((a - b))
乘:
expr 12 \* 6 expr $a \* $b
echo $[12 * 6] echo $[a * b]
echo $((12 * 6)) echo $((a * b))
除:
expr 12 / 6 expr $a / $b
echo $((12 / 6)) echo $((a / b))
echo $[12 / 6] echo $[a / b]
求余:
expr 12 % 6 expr $a % $b
echo $((12 % 6)) echo $((a % b))
echo $[12 % 6] echo $[a % b]
小数:
上述方式对小数无效
内置的 ‘’bc计算器” 计算
法一:
法二:
保留小数:
保留多少位小数可以通过scale
但是scale只对除法,取余数,乘幂 有效,对加减没有效(用/1变成除法)。
echo "scale=2;(0.2+0.3)/1" | bc #计算出0.2+0.3的和并保留俩位小数(整数位为0,此时bc计算器会省略掉个位数的0)
echo "scale=2;(1.2+1.3)/1" | bc #计算出1.2+1.3的和并保留俩位小数
常见的条件判断
语法:
[ 判断表达式 ]
文件(夹)或者路径:
-e 目标是否存在(exist)
-d 是否为路径(directory)
-f 是否为文件(file)
[ -e foer.sh ] || touch foer.sh #判断当前目录下是否有foer.sh这个文件,假如没有就创建出foer.sh文件
权限:
-r 是否有读取权限(read)
-w 是否有写入权限(write)
-x 是否有执行权限(excute)
[ -x 123.txt ] && echo '有执行权限'
整数值(int型(必须 )):
-eq 等于(equal)
-ne 不等于(not equal)
-gt 大于(greater than)
-lt 小于(lesser than)
-ge 大于或者等于(greater or equal)
-le 小于或者等于(lesser or equal)
注意:不能用><=
小数(浮点型):
利用bc计算器 特性
[ `echo '1.2 < 1.3' | bc` -eq 1 ] && echo '小于'
`echo '1.2 < 1.3' | bc 返回1
`echo '1.2 < 1.3' | bc` -eq 1 等于1 成立
&& echo '小于' 返回小于
字符串:
= 相等
!= 不相等
[ 'kkkkk' != 'kkkk' ] && echo '不等于'
shell脚本实例
实例1:
放入crt跑
追加符号
粘贴
执行并传参
运行错误!
并未打印出 12不等于13
因为没有用双引号
使用vi pandun.sh 修改
实例2:
vi pandun.sh
shell的变量以及常见符号的更多相关文章
- Shell基本语法---shell的变量以及常见符号
变量 1. 不同于其它语言需要先声明变量 2 .等号的两边不能有空格 3. 调用变量: $a 或者 ${a} a=; echo $a; echo ${a} 变量 变量意思 $? 判断上一条命令执行的 ...
- shell学习笔记1: shell 中的变量与常见符号使用方法
变量 声明即用 a=2 b="123" 调用 ${varName}或者 $varName echo $b echo ${a} 常见变量 $?:判断上一个语句是否成功 $0:执行脚本 ...
- shell脚本中一些特殊符号
在shell中常用的特殊符号罗列如下: # ; ;; . , / \\ 'string'| ! $ ${} $? $$ $* \"string\"* ** ...
- shell编程变量介绍与表达式详解
shell变量简介 变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据.脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell 变量也遵循这个规则. 在 Bash shell ...
- Shell环境变量与特殊变量详解
1)变量类型 1)变量可分为俩类:环境变量(全局变量),和普通变量(局部变量), 环境变量也称为全局变量,可以在创建他们的Shell及其派生出来的任意子进程Shell中使用,环境变量又可以分为自定义环 ...
- Linux学习-Shell的变量功能
什么是变量? 简单的说,就是让某一个特定字串代表不固定的内容. 变量的可变性与方便性 举例来说,我们每个帐号的邮件信箱默认是以 MAIL 这个变量来进行存取的, 当 dmtsai 这个 使用者登陆时, ...
- shell与变量的声明的操作
1.给命令起别名:alias 执行下面命令后,可以使用dir代替ls –l 命令,显示目录中的文件详细信息: 还可以用一个别名表示几个命令 的结合: 2.ps:显示当前登录会话的所有活动进程: 3.更 ...
- shell中常用的特殊符号
在shell中常用的特殊符号罗列如下: # ; ;; . , / \ 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `co ...
- shell的变量处理
shell的变量处理 一.删除 删除(删除某一段) # 从前向后删除 % 从后向前删除 删除(删除某一部分) $(var:nu1:nu2) nu1表示开始位置 nu2表示删除长度 示例如下 file= ...
随机推荐
- 17. 抽象建模能力&发散思维能力&综合(5)
抽象建模能力 题一:[扑克牌顺子] LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽 ...
- 7.Go-用户信息和系统文件/目录
7.1.获取操作系统用户信息 (1)os包及子包功能 os/exec包,负责执行外部命令 os/singal对输入信息的访问 os/user通过名次或ID 查询用户账号 (2)在os/user中提供了 ...
- Codeforces Round #552 (Div. 3) EFG(链表+set,dp,枚举公因数)
E https://codeforces.com/contest/1154/problem/E 题意 一个大小为n(1e6)的数组\(a[i]\)(n),两个人轮流选数,先找到当前数组中最大的数然后选 ...
- PyQt5发布技巧:指定插件(plugins)路径
一般来说,发布后的应用程序要能正常使用必须设置插件路径的环境变量: cmd脚本: wmic ENVIRONMENT create name="QT_QPA_PLATFORM_PLUGIN_P ...
- nowcoder941B 弹钢琴
题目链接 思路 首先按照音色排个序,顺便离散化一下音高. 用\(h[i]\)表示第\(i\)个键的音高,用\(w[i]\)表示第\(i\)个键的春希度. 朴素\(dp\) \(f[i][j]\)表示前 ...
- [PKUSC2018]最大前缀和(状压DP)
题目大意:求给定的 $n$ 个数的所有排列的最大前缀和(不能为空)之和对 $10^9+7$ 取模的值. $1\le n\le 20,1\le\sum|a_i|\le 10^9$. 神级DP.杂题选讲的 ...
- eclipse maven项目如何将所有的jar包复制到lib目录下?
1.情景展示 我们知道,maven项目的jar包并不存在于项目当中,项目所需的jar包都保存在本地仓库中,如果本地仓库没有,会从配置的中央仓库下载,如果中央仓库也没有就会报错: 如上图所示,我想将 ...
- MySQL中的存储过程、函数与触发器
一.对待存储过程和函数的态度 优点: 1.存储过程只在创建时进行编译,sql语句则每次执行都需要编译.能提高数据库执行速度. 2.简单复杂操作结合事物一起封装. 3.复用性高. 4.安全性高,可指定存 ...
- svg描边路径动画
svg描边路径动画<pre><!DOCTYPE html><html> <head> <meta charset="UTF-8" ...
- Mlsql内部资源调度读取opentsdb数据信息代码
package com.redoop.mlsqlimport java.net.URLEncoderimport java.nio.charset.Charsetimport net.sf.json. ...