【1】shell脚本
1--- shell命令
2--- 控制语句(新的语法)
(Shell命令的有序集合)

【2】创建shell脚本文件
1--- 1.sh
2--- chmod 777 1.sh
3--- 执行

rw- rw- r--
110 110 100
6 6 4

rwx rwx rwx
111 111 111
7 7 7

【3】变量
1--- 用户自定义变量
1、 没有数据类型
2、 赋值时=两边没有空格
3、 $提取变量里的内容

2--- 位置变量
$0 ... $9 //依次代表命令行参数
${10} //两位数的开始需要使用{}

3--- 预定义变量
$* $@ //命令行所有的位置参数,除了第一个$0
$# //命令行所有的参数个数,除了第一个$0
$$ //PID
$? //只与上一条shell命令有关
//上一条shell命令执行状态:成功$? = 0;
4--- 环境变量
$HOME /home/linux

【4】read
read 从标准输入读入一行, 并依次赋值给后面的变量,多的数据甩给最后一个变量

【5】expr
ret=`expr $A + $B \* 2`
echo "ret = $ret"

支持:+ - \* / % \( \)
注意:expr后留有空格。运算符两边留空格。

【6】test

必须使用$?承接测试结果:为真$?=0; 为假$?=1。

1--- 字符串
= != -z -n
(相等) (不等) (为空) (不为空)

2--- 整数
a -eq b 测试a 与b 是否相等
a -ne b 测试a 与b 是否不相等
a -gt b 测试a 是否大于b
a -ge b 测试a 是否大于等于b
a -lt b 测试a 是否小于b
a -le b 测试a 是否小于等于b

3--- 文件
1、测文件类型(间接测试文件是否存在)

b c d - l s p Linux文件类型
-b -c -d -f -L -S -p shell脚本测试标识

2、测文件权限

-r (读权限)
-w (写权限)
-x (可执行权限)

3、其它

-e name 测试一个文件是否存在
-s name 测试name 文件是否存在且其长度 不为0
f1 -nt f2 测试文件f1 是否比文件f2 更新
f1 -ot f2 测试文件f1 是否比文件f2 更旧

4--- []
与测试语句test完全等价。
注意:中括号与数据需要留有空格。

5---
-a //逻辑关系与
-o //逻辑关系或

【7】if

if 表达式
then
命令表
fi

************************************************

if 表达式
then
命令表
else
命令表
fi
************************************************

if 表达式
then
命令表1
elif 表达式
then
命令表2
else
命令表3
fi

【8】
case 变量 in
模式1)
命令表1
;;
模式2 | 模式3)
命令表2
;;
……
模式n)
命令表n
;;
esac

【9】for

for 变量名 in 单词表
do
命令表
done

【10】
while 命令或表达式
do
命令表
done

【11】
break:结束整个循环
continue:跳出本次循环,继续执行下一次循环
sleep 2 :睡眠2秒

【13】

function_name ( )
{
command1
……
commandn
}

1--- 函数调用1
fun 123 hello //fun:函数名
//123、hello:参数
$1 ...$n //在函数内部,用于承接函数传参
$@、$# //在函数内部,所有参数、参数个数

2--- 函数调用2
A=`fun 444 beijing` //fun:函数名
//444、beijing:参数
echo "$A" //A:存放函数内所有的标准输出

3--- 返回值
两种调用方式都用$?承接函数的返回值。

4--- 函数中的变量
函数调用1,变量默认为全局的,用local修饰变成局部变量。
函数调用2,变量默认为局部的。

linux中的shell脚本编程的更多相关文章

  1. 好记性比如烂笔头--linux学习笔记7关于linux中的shell脚本编程

    之前看的各种面试,貌似都有shell脚本编程,没了解之前感觉很复杂,现在了解了些,没想象中那么难. 逻辑主要是这样的 编写.sh的脚本文件,文件里面的代码,就是在命令行输入的可执行命令的加强版,所谓加 ...

  2. linux中的shell脚本编程---初识shell

    Shell是用户与Linux或Unix内核通信的工具,shell编程指的并不是编写这个工具,而是指利用现有的shell工具进行编程,写出来的程序是轻量级的脚本,我们叫做shell脚本. Shell的语 ...

  3. Linux 中执行Shell 脚本的方式(三种方法)

    Shell 脚本的执行方式通常有如下三种: (1)bash script-name 或者 sh script-name:(2)path/script-name或者./script-name:(3)so ...

  4. Linux中编写Shell脚本

    目录 Shell Shell脚本的执行 Shell脚本编写规范 Shell 中的变量 变量的算术运算 双小括号 (())  数值运算命令的用法 let 运算命令的用法 expr 命令的用法 br 命令 ...

  5. Linux基础篇–shell脚本编程基础

    本章内容概要  编程基础  脚本基本格式  变量  运算  条件测试  配置用户环境 7.1 编程基础程序:指令+数据程序编程风格:   过程式:以指令为中心,数据服务于指令   对象式:以数据为中心 ...

  6. Linux中执行shell脚本的4种方法总结

    bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在 ...

  7. Linux中执行shell脚本的4种方法

    bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在 ...

  8. 每天一个linux命令(62):sh命令 /Linux中执行shell脚本的4种方法总结

    bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在 ...

  9. Linux中执行shell脚本命令的4种方法总结

    bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在 ...

随机推荐

  1. HDU 3308 LCIS(线段树)

    Problem Description Given n integers.You have two operations:U A B: replace the Ath number by B. (in ...

  2. jquery on 动态添加的元素,神奇的bug

    $(document.body).on("click", ".comments-item .link-comment", function () { 平时用 d ...

  3. nginx指定配制文件

    nginx启动: 未指定配制文件: ./nginx 指定配制文件: /usr/local/nginx/sbin/nginx -c /home/deploy/nginx-wz/conf/nginx.co ...

  4. 夺命雷公狗ThinkPHP项目之----企业网站23之网站前台二级分类的跳转(URL跳转到列表页或产品页)

    我们现在开始做实现我们的二级菜单如何跳转到指定的列表页或者产品也呢?? 我们分享下数据库情况: 我们的数据库里提前给我们预留了一个cate_type的字段,那么我们可以让这个字段进行判断,从而遍历出指 ...

  5. thinphp讲解(三)——空操作、空控制器、跨控制器、命名空间

    一.“空操作”本质意思:一个对象(控制器)调用本身不存在的操作方法 一般网站处于安全考虑不给用户提示任何错误信息 在tp里面控制器controller.class.php里有个_call()方法 所以 ...

  6. opencv的一次性配置

    最近做自然场景中的文字识别,想尝试些图像处理方法,感觉每一种方法都需要自己写很麻烦,自然就想到了强大的开源的跨平台计算机视觉库OpenCv.我用的是opencv2.4.9版本,VS用的是2010,他们 ...

  7. 图像处理之常用颜色RGB、灰度值

    128/0/0       深红         255/0/0       红           255/0/255     粉红        255/153/204 玫瑰红       153 ...

  8. svn权限控制

    http://blog.csdn.net/clever101/article/details/8159105 [groups] #核心层开发组成员 core_dev = lg,zjc #扩展层开发组成 ...

  9. php curl应该怎么使用呢

    原php默认并不进行此项功能的扩展,但还是有的,只是没有让它生效罢了.打开PHP安装目录,搜索以下三个文件 ssleay32.dll.libeay32.dll和 php_ curl .dll,一一拷贝 ...

  10. 怎么使用 Laravel 的服务容器来优化读写数据库中的 options关键词

    其中我们可以最方便地利用的一个特性就是 Laravel 的服务容器了.在这里我不多赘述 Service Container 是个啥,想了解的可以自行搜索.不想了解的就只要大致知道它是个可以 绑定/取出 ...