前言:

Shell脚本是Linux开发工作中常用的工具,但是我一直没有找到一个适合自己的简明扼要的HandBook。在工作过程中整理了一下,贴在这里以备查看。

一、基础篇

1.对文件的判断:(命令执行成功返回值是0,不成功则是非0)

-e filename 如果 filename存在,则为真

-d filename 如果 filename为目录,则为真

-f filename 如果 filename为常规文件,则为真

-L filename 如果 filename为符号链接,则为真

-r filename 如果 filename可读,则为真

-w filename 如果 filename可写,则为真

-x filename 如果 filename可执行,则为真

-s filename 如果文件长度不为0,则为真

-h filename 如果文件是软链接,则为真

2.逻辑判断标识:

-eq           //等于

-ne           //不等于

-gt            //大于 (greater )

-lt            //小于  (less)

-ge            //大于等于

-le            //小于等于

3.特殊变量列表:

变量

含义

$0

当前脚本的文件名

$n

传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。

$#

传递给脚本或函数的参数个数。

$*

传递给脚本或函数的所有参数。

$@

传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。

$?

上个命令的退出状态,或函数的返回值。

$$

当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。

4.特殊字符的表达:

\b 退回  
\c 打印一行时没有换行符 这个我们经常会用到  
\f 换页  
\r 回车  
\t 制表  
\v 垂直制表  
\\ 反斜线本身

5.运算符及其优先级:

级别

运算符

说明

13

-, +

单目负、单目正

12

!, ~

逻辑非、按位取反或补码

11

* , / , %

乘、除、取模

10

+, -

加、减

9

<< , >>

按位左移、按位右移

8

< =, > =,  < , >

小于或等于、大于或等于、小于、大于

7

= = , ! =

等于、不等于

6

&

按位与

5

^

按位异或

4

|

按位或

3

&&

逻辑与

2

| |

逻辑或

1

=, + =, - =, * =, /=, % =, & =, ^ =, | =, << =, >> =

赋值、运算且赋值

二、基础循环及其应用范例:

1.单if与if/elif嵌套:

if 条件表达式  
then #当条件为真时执行以下语句  
命令列表  
else #为假时执行以下语句  

if 条件表达式  
then #当条件为真时执行以下语句  
命令列表

elif #当条件为真时执行以下语句

命令列表

elif #当条件为真时执行以下语句

命令列表

else #执行以下语句

命令列表

2.case多分支结构:

case $newval in

1)          #这里是可能值1

echo 1

;;      #表示第一个分支结束

2)           #这里是可能值 2

echo 2

;;      #第二个分支结束

*)      #表示其他可能值,必须在最后,否则他后面的语句无法执行

echo unkown

esac    #case 语句结束

3.for枚举法与累加格式:

枚举:

for n in {1..10}

do

echo $n

done

累加:

for (( i=1;$i<10;i++))

do

echo $i

done

for(( i=1;$i<10;i=$[$i+1’ ])

do

echo $i

done

4.while循环读取 文本:

while read filename

do

  echo $filename

done < names.txt

三、一些注意事项:

1.break 命令不执行当前循环体内break下面的语句从当前循环退出.

 continue 命令是程序在本循体内忽略下面的语句,从循环头开始执行.

2.将脚本或者命令放到后台执行:

1)在命令后加上 & 字符来实现,需要注意的是输出进程号:sh 1.sh &

2)在命令前使用:nohup command > log.file 2>&1 &

3)将后台运行的程序切回到前台:#fg %2

3.匹配IP地址:

[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\   匹配是否为IP地址

4.shell自增的五种办法:

i=`expr $i + 1`;
 let i+=1;
 ((i++));
 i=$[$i+1];
 i=$(( $i + 1 ))

另外,对于固定次数的循环,可以通过seq命令来实现,就不需要变量的自增了;实例如下:

#!/bin/bash
for j in $(seq 1 5)
do
echo $j
done

shell常用标识符及应用范例的更多相关文章

  1. 【shell 大系】Linux Shell常用技巧

    在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux ...

  2. Linux系统重要快捷键& Shell 常用通配符

    [Tab]:使用Tab键来进行命令补全: [Ctrl+c]:强行终止当前程序: [Ctrl+d]:键盘输入结束或退出终端: [Ctrl+s]:暂定当前程序,暂停后按下任意键恢复运行: [Ctrl+z] ...

  3. shell 常用正则

    shell常用正则表达式   “^\d+$” //非负整数(正整数 + 0)   “^[0-9]*[1-9][0-9]*$” //正整数   “^((-\d+)|(0+))$” //非正整数(负整数 ...

  4. Hbase Shell常用命令

    hbase shell常用的操作命令有create,describe,disable,drop,list,scan,put,get,delete,deleteall,count,status等,通过h ...

  5. (转)Hbase shell 常用命令(1)

    Hbase shell 常用命令(1) link:http://blog.csdn.net/scutshuxue/article/details/6988348 下面我们看看HBase Shell的一 ...

  6. hbase基本概念和hbase shell常用命令用法

    1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实 ...

  7. Linux Shell常用技巧(目录)

    Linux Shell常用技巧(一) http://www.cnblogs.com/stephen-liu74/archive/2011/11/10/2240461.html一. 特殊文件: /dev ...

  8. 【转载】HBase基本概念和hbase shell常用命令用法

    1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实 ...

  9. HBase shell 常用指令

    HBase shell 常用指令 连接HBase $ ./bin/hbase shell 打开帮助 hbase(main):001:0> help 创建表 hbase(main):003:0&g ...

随机推荐

  1. 昏睡了8年的我带着第一个微信小程序今年醒了

    工作8年之久的我今年算是彻底长进了,以前是知道自己的水平不咋地,但是没什么行动,理由是3年抱2娃,需要照顾孩子. 去年年底偶然一次看技术贴的时候,看到了博客园这个平台,看了很多大牛们的经历,也知道公司 ...

  2. [Abp vNext 源码分析] - 7. 权限与验证

    一.简要说明 在上篇文章里面,我们在 ApplicationService 当中看到了权限检测代码,通过注入 IAuthorizationService 就可以实现权限检测.不过跳转到源码才发现,这个 ...

  3. 用HTML5的Audio标签做一个歌词同步的效果

    HTML5出来这么久了,但是关于它里面的audio标签也就用过那么一次,当然还仅仅只是把这个标签插入到了页面中.这次呢就刚好趁着帮朋友做几个页面,拿这个audio标签来练练手. 首先你需要向页面中插入 ...

  4. 第二十二章 跳出循环-shift参数左移-函数的使用 随堂笔记

    第二十二章 跳出循环-shift参数左移-函数的使用 本节所讲内容: 22.1 跳出循环 22.2 Shift参数左移指令 22.3 函数的使用 22.4 实战-自动备份mysql数据库和nginx服 ...

  5. Leetcode的SQL题解:185. 部门工资前三高的员工

    题目 查询部门工资前三高的员工. 我用的数据库是oracle. 下面是数据表的信息. Employee表数据: | ID | NAME | Salary | DepartmentId | | -- | ...

  6. 洛谷 P5367 【模板】康托展开(数论,树状数组)

    题目链接 https://www.luogu.org/problem/P5367 什么是康托展开 百度百科上是这样说的:   “康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩. ...

  7. Flutter学习笔记(17)--顶部导航TabBar、TabBarView、DefaultTabController

    如需转载,请注明出处:Flutter学习笔记(17)--顶部导航TabBar.TabBarView.DefaultTabController 上一篇我们说了BottmNavigationBar底部导航 ...

  8. 三角函数与JavaScript

     1. 三角函数 sin&(求对边与斜边的比值) cos&(邻边与斜边的比值) tan&(对边与邻边的比值) 2.JavaScript的函数的使用 Math.sin() Mat ...

  9. OpenGL入门第一天:环境

    本文是个人学习记录,学习建议看教程 https://learnopengl-cn.github.io/ 非常感谢原作者JoeyDeVries和各位翻译提供的优质教程 近况(牢骚 这几天教母校初中的OI ...

  10. 【数学+思维】ZZULIOJ 1531: 小L的区间求和

    题目链接 题目描述 在给定的一个整数序列中,小L希望找到一个连续的区间,这个区间的和能够被k整除,请你帮小L算一下满足条件的最长的区间长度是多少. 输入 第一行输入两个整数n.k.(1 <= n ...