shell编程学习笔记【原创】】的更多相关文章

LinuxShell编程学习笔记目录附笔记资源下载 目录(?)[-] 写在前面 第一部分 Shell基础编程 第二部分 Linux Shell高级编程技巧 资源下载 写在前面 最近花了些时间学习Shell,视频学习过程中做了笔记,留给大家参考. 第一部分 Shell基础编程 第一部分 Shell基础编程——第一章 Shell简介 http://blog.csdn.net/wentasy/article/details/8702846 第一部分 Shell基础编程——第二章变量和运算符 http:…
本文为本人学习笔记,如有转载请注明出处,谢谢 一.Bourne Shell 有如下四种变量: 用户自定义变量 位置变量,即命令行参数 预定义变量 环境变量 二.位置变量 $ 与键入的命令行一样,包含脚本文件名 $, $, ……. $ 分别包含第一个到第九个命令行参数 $# 包含命令行参数的个数 $@ 包含所有命令行参数: “$, $, ……. $”会一个一个拆分解析 $? 包含前一个命令的退出状态 $* 包含所有命令行参数: “$, $, ……. $”所有包括在一起解析的 $$ 包含正在执行进程…
目前在学习Shell编程,我会把我的学习笔记记录在这里.大神可以直接略过~ 嗯,第一段代码,肯定是要输出Hello World了~ 以下蓝色字体的内容为linux命令,红色字体的内容为输出的内容: # cd /opt # mkdir scripts # vim script01.sh 开始编写script01.sh的脚本,脚本内容为: #! /bin/sh echo "hello world!" # chmod +x script01.sh # ./script01.sh hello…
shell编程中可以实现for循环遍历 先来写一个最简单的吧,循环输出从1到10,脚本内容为: #! /bin/sh for i in {1..10} do echo $i done 上面的代码从1到20循环输出,使用for关键字进行循环,循环体以do开始,以done结束. 再看第二个例子,这个例子循环遍历一个集合: #! /bin/sh list="a b c d" for item in $list do echo $item done 上面的代码会把集合循环遍历输出,分别输出a.…
在shell编程中,大多数处理的都是文本文件.对文本文件进行处理除了使用交互式文本编辑器(vi[m],gedit......)也可以使用另外一类:流编辑器. 流编辑器:使用预定义的编辑规则来对文本进行处理.如sed,gawk 本文将会记录学习的sed的一些命令,以及一些正则联合使用来对文本进行操作案例. 第一部分:sed简述 1.1 sed的使用方法 sed编辑器是以行为单位来对文本处理的编辑器.它的使用方法有两种: sed [选项] 命令 目标文本 sed [选项] -f 脚本文件 目标文件…
编程语言中都有条件判断,shell编程也不例外,下面我们来看一下shell中应该怎么使用if条件判断 以下蓝色字体部分为Linux命令,红色字体的内容为输出的内容: # cd /opt/scripts # vim script07.sh 开始编写script07.sh的脚本,脚本内容为: #! /bin/sh if [ 3 -gt 2 ] then echo "3>2" fi if [ 3 -lt 2 ] then echo "3<2" else ech…
这一篇不是讲shell编程的,专门讲cat命令.shell编程书用到了这个cat命令,顺便说一下cat命令. cat命令有多种用法,我一一来列举(以下蓝色字体部分为Linux命令,红色字体的内容为输出的内容): 1.查看文件内容 # cat file1.txt helloworld 2.把一个文件的内容复制到另一个文件,如果另一个文件不存在,则自动创建该文件 # cat file1.txt > file2.txt # cat file2.txt helloworld 使用-n参数会在复制的新文件…
在执行Shell脚本的时候,可以在执行时带上参数,相当于传递参数给脚本,下面我们看一下怎么使用这个参数 以下蓝色字体部分为Linux命令,红色字体的内容为输出的内容: # cd /opt/scripts # vim script05.sh 开始编写script05.sh的脚本,脚本内容为: #! /bin/sh echo "$# 个参数" echo "参数内容:$@" echo "第一个参数内容:$1" ps -ef|grep $1 # chmo…
特殊变量($0.$1.$2. $?. $# .$@. $*) shell编程中有一些特殊的变量可以使用.这些变量在脚本中可以作为全局变量来使用. 名称 说明 $0 脚本名称 $1-9 脚本执行时的参数1到参数9 $? 脚本的返回值 $# 脚本执行时,输入的参数的个数 $@ 输入的参数的具体内容(将输入的参数作为一个多个对象,即是所有参数的一个列表) $* 输入的参数的具体内容(将输入的参数作为一个单词) $@与$*的区别: $@与$*都可以使用一个变量来来表示所有的参数内容,但这两个变量之间有一…
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板.如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名.搜索的结果被送到标准输出,不影响原文件内容. grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成…
linux通配符: 通配符是由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在 命令的“参数”里(它不用在 命令名称里, 也不用在 操作符上).当shell在“参数”中遇到了通配符时,shell会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行代换(路径扩展):否则就将该通配符作为一个普通字符传递给“命令”,然后再由命令进行处理.总之,通配符 实际上就是一种shell实现的路径扩展功能.在 通配符…
shell中也可以实现类似java的while循环 while循环是指满足条件时,进行循环 示例: #! /bin/sh index=10 while [ $index -gt 0 ] do index=$((index-1)); echo $index done while循环以whille开始,循环体以do开始,以done结束 注意第5行的代码,表达式index-1外面添加了$(()),如果不添加$(())的话,会报错,因为这里index是字符串,得到的结果不是9,而是10-1 第5行的in…
现在我们看一下Shell中局部变量的使用 以下蓝色字体部分为Linux命令,红色字体的内容为输出的内容: # cd /opt/scripts # vim script03.sh 开始编写script03.sh的脚本,脚本内容为: #! /bin/sh num=123 func1() { num=321 echo $num } func2() { local num=456 echo $num } echo $num func1 echo $num func2 echo $num # chmod…
变量在很多编程语言中都有,Shell中也不例外,我们下面看一下Shell中的变量怎么使用: 以下蓝色字体部分为Linux命令,红色字体的内容为输出的内容: # cd /opt/scripts # vim script02.sh 开始编写script02.sh的脚本,脚本内容为: #! /bin/sh long_string="this is a test" echo $long_string num1=20 num2=30 echo $(($num1+$num2)) echo &quo…
1:Shell Script中if语句的条件部分要以分号来分隔 2:要注意条件测试部分中的空格.在方括号的两侧都有空格 3:echo "Hi, ${a}s" 单引号中的变量不会进行变量替换操作. 4:[ -f "$file" ] 判断$file是否是一个文件 5:[ $a -lt 3 ] 判断$a的值是否小于3,同样-gt和-le分别表示大于或小于等于 6:[ -x "$file" ] 判断$file是否存在且有可执行权限,同样-r测试文件可读性…
在Shell脚本中,用于while或for循环中经常要涉及到整数自增的情况,下面罗列下可能的方式 [方式一]declare -i来声明整数变量 root@localhost:~# declare -i x=1 root@localhost:~# x+=1 root@localhost:~# echo $x 2 [方式二]使用let命令 root@localhost:~# i=1 root@localhost:~# let i+=1 root@localhost:~# echo $i 2 root…
2017-07-17 09:32:07 输入read: 用途: 从标准输入读取一行,或者从文件描述符FD(file descriptor)中读取一行,并且将其分割成字段. 用法: read [-ers] [-a 数组] [-d 分隔符] [-i 缓冲区文字] [-n 读取字符数] [-N 读取字符数] [-p 提示符] [-t 超时] [-u 文件描述符] [名称 ...] 常用选项: -a:(arrary) 将读取得的字符划分成单词,按照数组存储(从0开始) 源码:#!/bin/bash ec…
打算在学习过程中将每个写过的程序一个个的往上贴; 2015-07-03 1. 鸟叔第三版13.2.1节“利用日期进行文件的创建” 源代码 #!/bin/bashPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHread -p "Please input your filename:" fileuserfilename=${fileuser:-"file"…
在循环遍历中,可以添加对应判断条件跳出循环,跳出循环可以使用break/continue,这个跟java语言是一样的,break是指跳出整个循环,continue是指跳出当前循环体,继续下一项循环. 下面是break的示例: #! /bin/sh for i in {1..10} do if [ $i -eq 5 ] then break fi echo $i done 执行该代码,会依次输出1到4,后面的循环就不再执行了 把上面的代码稍微改一下,使用continue: #! /bin/sh f…
除了可以使用if条件判断,还可以使用case 以下蓝色字体部分为Linux命令,红色字体的内容为输出的内容: # cd /opt/scripts # vim script08.sh 开始编写script08.sh的脚本,脚本内容为: #! /bin/sh case $1 in 1) echo "你输入了1";; 2) echo "你输入了2";; *) echo "你输入了其他";; esac 上面的代码,$1是指接收到的第1个参数 每一个cas…
一.if的语法: 1.单分支语句结构 if [ 条件表达式 ]; then 指令 fi 2.双分支语句结构 if [ 条件表达式 ]; then 指令一 else 指令二 fi 3.多分支语句结构 if [ 条件表达式 ]; then 指令一 elif [ 条件表达式 ]; then 指令二 else 指令三 fi 上面直接给出了多分支if语句的一个实例.从上面三个结构中可以看出,条件表达式的左右都要有空格. 二.条件表达式的内容 1.字符串的判断 str1 = str2 当两个串有相同内容.长…
我们这里把echo要打印的内容输出到文件中 以下蓝色字体部分为Linux命令,红色字体的内容为输出的内容: # cd /opt/scripts # vim script06.sh 开始编写script06.sh的脚本,脚本内容为: #! /bin/sh echo "hello" > /opt/test/test1.txt cat /opt/test/test1.txt 上面的echo本来是输出到屏幕的,通过使用>,将要输出到屏幕的内容改为输出到文件中 然后,使用cat命令将…
通过echo可以输出字符串,下面看一下怎么输出特殊转义字符,首先我先列出来echo的转义字符: \\ 输入\ \a 输出警告音 \b 退格,即向左删除一个字符 \c 取消输出行末的换行符,和-n选项一致 \e Esc \f 换页符 \n 换行 \r 回车 \t 制表,即Tab \v 垂直制表符 \0nnn 按照八进制ASCII码表输出字符,其中0为数字零,nnn是三位八进制数 \xhh 按照十六进制ASCII码表输出字符,其中hh是两位十六进制数 以下蓝色字体部分为Linux命令,红色字体的内容…
1.对单字符的查找: 1.1单字符: ‘X’ $ grep ‘q’ passwd //查找单个字符 1.2 范围字符 [] [^] 1.3 任意字符 . $ grep '[1-9]' passwd //查找某个范围的单个字符(范围) $ grep '[a-zA-Z]' passwd //查找某个范围的单个字符(范围) $ grep '[a-zA-Z:/,_-()]' passwd ------------>$ grep '[^0-9]' passwd //取反 2.正则表达式的符号: 边界字符:…
        本文由哈利_蜘蛛侠原创,转载请注明出处.有问题欢迎联系2024958085@qq.com         注:我给的电子版是700多页,而实体书是800多页,所以我在提到相关概念的时候,会使用章节号而非页码.相同的情况适合于"龙书"第二版. 上一期的地址: DX 11游戏编程学习笔记之7  这一期我们专门来研究第6章的习题. 尽管数目比較多,可是大部分还是非常easy的.注意我说的是"大部分"! 习题解答: =====================…
        本文由哈利_蜘蛛侠原创,转载请注明出处.有问题欢迎联系2024958085@qq.com         注:我给的电子版是700多页,而实体书是800多页,所以我在提到相关概念的时候,会使用章节号而非页码.相同的情况适合于"龙书"第二版. 上一期的地址: DX 11游戏编程学习笔记之5 这一章的内容非常短所以也是相对轻松的一期了.只是这一章的内容要深入理解的话并非非常easy.另外这一章非常多内容与"龙书"第二版的第6章内容是一样的.而且包括了&q…
官方资料:Shell Functions (Bash Reference Manual) 简介 正如我们在<Bash脚本编程学习笔记06:条件结构体>中最后所说的,我们应该把一些可能反复执行的代码块整合起来,避免反复编写使得代码过于臃肿. 函数正是为了解决这个问题而存在的.函数在定义时,可以将常用的代码整合为一个整体,当我们需要执行的时候,只需要调用这个函数即可. Bash是过程式编程语言,从上至下顺序执行代码,因此函数定义必须在函数调用之前完成. 函数属于shell的基础特性,即不仅仅是针对…
本篇中涉及到算术运算,使用了$[]这种我未在官方手册中见到的用法,但是确实可用的,在此前的博文<Bash脚本编程学习笔记03:算术运算>中我有说明不要使用,不过自己忘记了.大家还是尽量使用其他的方法进行算术运算. 简介 Bash具有三种循环结构: for循环. while循环. untile循环. 在使用循环结构体的时候,需要注意循环的进入条件和结束条件,避免出现死循环的情况. for循环 for循环又分为两种格式:遍历列表和控制变量. 遍历列表 for VAR in LIST; do BOD…
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之GUI编程窗体事件 6.JAVA之GUI编程Action事件 7.JAVA之GUI编程鼠标事件 8.JAVA之GUI编程键盘码查询器 9.JAVA之GUI编程列出指定目录内容 10.JAVA之GUI编程弹出对话框Dialog 11.JAVA之GUI编程菜单 12.JAVA之GUI编程打开与保存文件…
接上文 多线程编程学习笔记——任务并行库(一) 接上文 多线程编程学习笔记——任务并行库(二) 接上文 多线程编程学习笔记——任务并行库(三) 接上文 多线程编程学习笔记——任务并行库(四) 通过前面的文章,已经学习了怎么使用线程,怎么使用线程同步,怎么使用线程池,怎么使用任务并行库.尽管通过上面的学习,对于线程的使用越来越简单.有没有更简单的方法呢. C# 5.0之后,微软在c#语言中添加了两个关键字async与await,这是在TPL上面的更高一级的抽象,真正简化了异步编程的编程方式,从而有…