Shell中的算术运算(译)】的更多相关文章

算术运算 尽管Shell中的变量被缺省地看做是string类型,而非number,但是Shell本身仍然支持算术运算.主要有以下5种方式. 1. declare 2. expr $ z=5 $ z=`expr $z+1` # 加号(+)两边要有空格 $ echo $z 5+1 $ z=`expr $z + 1` $ echo $z 6 3. let $ let z=5 $ echo $z 5 $ let z=$z+1 $ echo $z 6 $ let z=$z + 1 # 与expr相反, 在…
目录 算术运算 赋值运算 逻辑运算 短路运算和异或 条件测试 数值测试 字符串测试 文件及其属性测试 存在性测试 存在性及类别测试 文件权限测试 文件特殊权限测试 文件大小测试 文件是否打开 双目测试 组合测试条件 扩展 read命令 配置文件相关 Bash退出任务 关于$-变量 算术运算 Bash中我们可以进行算术运算,包括:+.-.*./.%.**,分别是加,减,乘,除,取余,乘方.我们有六种方式,实现上面的运算: (1) let var=算术表达式 (2) var=$[算术表达式] (3)…
来源:http://blog.sina.com.cn/s/blog_62a151be0100x9rn.html 第四章 基本功 - 特殊符号 学习撰写 script 最迅速的捷径是观摩别人的 script 档案.不过,此法儘管实际,但这对于 shell 基础认知不足的人来说,通常都得到"事倍功半",甚至半途而废.通常第一个问题就是搞不懂那些"特殊符号"到底在代表什么意义,又到底她们干了些什么? 以下,农夫尝试列出常用的特殊符号表列,并在说明中加入简短的范例.原则上,…
注意:不同版本的Linux会有所区别,不过大同小异 Linux 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示.一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器. 输出重定向 命令的输出不仅可以是显示器,还可以很容易的转移向到文件,这被称为输出重定向. 命令输出重定向的语法为: $ command > file 这样,输出到显示器的内容就可以被重定向到文件. 例如,下面的命令在显示器上不会看到任何输出: $ who > users 打…
转自:https://www.cnblogs.com/HKUI/p/6423918.html 查看脚本语法是否有错误:bash -n modify_suffix.sh跟踪执行sh -x modify_suffix.sh aaa 1.${var} 2.$(cmd) 3.()和{} 4.${var:-string},${var:+string},${var:=string},${var:?string} 5.$((exp)) 6.$(var%pattern),$(var%%pattern),$(va…
本文转自:https://blog.csdn.net/taiyang1987912/article/details/39551385 shell中各种括号的作用().(()).[].[[]].{} 一.小括号,圆括号() 1.单小括号 ()    ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格.    ②命令替换.等同于`cmd`,shell扫描一遍命令行,发现…
shell中各种括号的作用().(()).[].[[]].{} 一.小括号,圆括号()1.单小括号 ()   ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格.   ②命令替换.等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令.有些shell不支持,如tcsh.    ③…
shell中各种括号的作用().(()).[].[[]].{} 原文:http://www.jb51.net/article/60326.htm http://blog.csdn.net/good_habits/article/details/27708745. http://blog.csdn.net/taiyang1987912/article/details/39551385 在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下: 1.${var} 2.$(…
在Linux Shell中进行数学运算,通常能够使用的运算符有: 简单运算: let [] (()) 高级运算: expr bc 1.let命令 let命令是bash内置命令.能够实现简单的算术以及逻辑运算.通过help let命令,能够查询到let命令的详细使用方法. 使用方法: #!/bin/sh i=10 echo $i let i=i+10 #20 echo $i let "i=i+100" #120 echo $i 2.[] []相当于let命令,其使用方法例如以下: #!/…
目录 shell 括号 test 和 []符号 [[]] 符号 let和(())符号 "[]" , "[[]]" 和 "(())"对比 shell 括号 test 和 []符号 两者是一样的,在命令行里test expr和[ expr ]的效果相同.要注意的有: test中可用的比较运算符只有==和!= 两者都是用于字符串比较的,不可用于整数比较,整数比较只能使用-eq, -gt这种形式. 无论是字符串比较还是整数比较都千万不要使用大于号小于号.…
11 shell中内置关键字[[]]:检查条件是否成立 1.小括号.圆括号() 1.1 单小括号() 用途     命令组 括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用. 括号中多个命令之间用分号隔开,最后一个命令可以没有分号, 各命令和括号之间不必有空格. 22 shell组命令与子进程 命令替换 等同于 cmd ,shell扫描一遍命令行,发现了(cmd)结构,便将(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令. 有些shel…
一.if的基本语法: if [ command ];then    符合该条件执行的语句 elif [ command ];then    符合该条件执行的语句 else    符合该条件执行的语句 fi 二.文件/文件夹(目录)判断 [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真. [ -d DIR ] 如果 FILE 存在且是一个目录则为真. [ -e FILE ] 如果 FILE 存在则为真. […
参考博客: [1]shell中各种括号的作用().(()).[].[[]].{} [2]shell中的单层大/中/小括号.双层大中小括号.命令替换等 一.前言 目录 单括号() 双括号(( )) 单中括号[ ] 双中括号[[]] 大括号{} 符号$后的括号 多条命令执行 算数运算:双小括号 (( )) 整数比较:中括号 [ ] --左右留空格 字符串比较:双中括号 [[ ]] 快速替换:花括号 { } --左右留空格 反单引号:用sub shell执行命令 `` shell命令及输出:小括号 (…
区分两个 Shell Shell 语言与 Shell 解释器 Shell 语言 写 Shell 脚本使用的是 Shell 语言,Shell 既是一种命令语言,又是一种程序设计语言. 作为命令语言,它交互式地解释和执行用户输入的命令 作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制 Shell 脚本解释器 解析Shell 使用的是 Shell 脚本解释器,一个用 C 语言编写的程序,它是用户使用 Unix/Linux 的桥梁,接口程序.常见的脚本解释器有 bash.s…
开始还以为是这样的语法: sleep(1), 后面发现是: linux shell 中的sleep命令 分类: LINUX 在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小时) sleep 1 睡眠1秒 sleep 1s 睡眠1秒 sleep 1m 睡眠1分 sleep 1h 睡眠1小时 linux shell 真奇怪... 其实linux shell 也有函数的概念…
今天总结一下linux shell中逻辑关机表达方式.逻辑与的表达: 1).if [ $xxx=a -a $xx=b ] 注:-a表示and的意思 2).if [ $xxx=a ] && [  $xx=b ] eg: #! /bin/bash webapps_dir='/var/log/webapps' webapps_owner=`ls -l /var/log|grep 'webapps$'|awk '{print $3}'` webapps_group=`ls -l /var/log|…
shell中变量值,如果不手动指定类型,默认都是字符串类型: 例如: a= b= c=$a+#b echo $c 结果会输出:123+456 shell中,如果要进行数值运算,可以通过一下方法: 方法1: a= b= c=$(($a+$b)) 方法2: a= b= declare -i c=$a+$b 通过declare -i 来声明c的数值类型为int类型 方法3: a= b= c=$(expr $a + $b) 注意+号两边有空格 通过貂绒expr命令来进行字符串的加减…
shell中${}的妙用   1. 截断功能 ${file#*/}:       拿掉第一条/及其左边的字符串:dir1/dir2/dir3/my.file.txt ${file##*/}:    拿掉最后一条/及其左边的字符串:my.file.txt ${file#*.}:       拿掉第一个.及其左边的字符串:file.txt ${file##*.}:    拿掉最后一个.及其左边的字符串:txt ${file%/*}:     拿掉最后条/及其右边的字符串:/dir1/dir2/dir…
1.管道 "|" ls | cat -n > out.txt 2. 子shell 2.1 子shell 说明 在shell脚本中可以用()操作符可以定义一个子shell #/bin/bash pwd (cd / ; ls) pwd 执行结果…
测试题: [ -z "" ] && echo 0 || echo 1 的结果是多少 看看这两个 && || 的用户  http://blog.csdn.net/a627088424/article/details/20360107 shell中&&和||的使用方法 &&运算符:   command1  && command2   &&左边的命令(命令1)返回真(即返回0,成功被执行)后,&a…
VBird说学习Linux,掌握了Shell和正则就相当于打通了任督二脉,此后能力的成长才会突飞猛进. Shell的基础学习之前已经总结了一篇博客:http://www.cnblogs.com/jyzhao/p/4485553.html 本文将总结Shell中的正则表达式及常用的字符处理命令,为打通任督二脉奠定基础^_^. 基础正则表达式举例说明 字符截取命令 cut命令 awk命令 sed命令 字符处理命令 sort命令 wc命令 1. 基础正则表达式举例说明 *,.,\,^word,word…
shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真. [ -d FILE ] 如果 FILE 存在且是一个目录则为真. [ -e FILE ] 如果 FILE 存在则为真. [ -f FILE ] 如果 FILE 存在且是一个普通文件则为真. [ -g FILE ] 如果 FILE 存在且已经设置了SGID则…
shell中的循环 for循环 类似于C语言的步长控制 例如: ;i<=;i++)); ); done 将1到10,依次乘以4,然后打印出来. 这里顺便提一下,shell里面表达式的计算,可以有其他形式: ;i<=;i++)); )); done ;i<=;i++)); ]; done 类似于python的迭代序列 比如遍历一个数组: a=( ) for v in ${a[*]}; do echo $v done 上面这段代码可以用seq命令简化: ) ;do echo $i ;done…
shell中&&和||的使用方法 &&运算符:   command1  && command2   &&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行:换句话说,"如果这个命令执行成功&&那么执行这个命令".  语法格式如下:       command1 && command2 [&& command3 ...]…
在Shell中引用其他脚本的方法是source   filename.sh 或    .    filename.sh 注意:      .   和   filename.sh之间必须有空格…
本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为xml或html文件, 并分析了核心语句.本文介绍的方法适用于PostgreSQL ,相对mysql而言,shell 中读写PostgreSQL会更简单些. 1. 连接mysql 数据库 shell中连接数据库的方法很简单,只需要指定用户名,密码,连接的数据库名称,然后通过重定向,输入mysql的语…
http://www.cnblogs.com/chenmh/p/5382044.html 问:其中 的2>&1是怎么回事? . test.sh > test.log 2>&1 答: >和<是 文件重定向符.在shell中,每个进程都和三个系统文件相关联: 标准输入stdin,文件描述符为0 标准输出stdout,文件描述符为1 标准错误stderr,文件描述符为2 所以这里2>&1的意思就是将标准错误也输出到标准输出当中. 示例: 下面通过一个例…
2.2.6.1.case语句(1)shell中的case语句和C语言中的switch case语句作用一样,格式有差异(2)shell中的case语句天生没有break,也不需要break,和C语言中的switch case不同.shell中的case默认就是匹配上哪个执行哪个,不会说执行完了还去执行后面的其他case(就好像shell中的case语言默认都带了break). 2.2.6.2.调用shell程序的传参(1)C语言中可以通过main函数的argc和argv给程序传参(详情参考<4.…
1.for循环(1)要求:能看懂.能改即可.不要求能够完全不参考写出来.因为毕竟嵌入式并不需要完全重新手写shell,系统管理员(服务器运维人员,应用层系统级管理开发的才需要完全掌握shell) 这里将1 2 3 4 5依次打印出来 打印出当前目录文件 2.while循环(1)和C语言的循环在逻辑上无差别(2)要注意很多格式要求,譬如:while后面的[]两边都有空格,[]后面有分号分号(如果do放在一行的话),i++的写法中有两层括号. 3.echo的创建和追加输入文件(1)在shell中可以…
理解 Linux shell 中的一个方言:2>&1  2016-11-14 杜亦舒 前言 在使用 linux 命令或者 shell 编程时,这个用法常会遇到 2>&1 如果是刚开始接触Linux,这个东西的确不好理解,因为他没有直观的含义,不像一个命令,例如 cp是 copy 的简写,很好记. 我以前刚用Linux时就对这个东西迷糊了一段时间,今天刚好看到一篇文章介绍他,感觉很有必要总结出来,分享给还不是很理解这个方言的朋友. 下面看一个命令示例,然后分析下他是如何工作的:…