非常需要注意的是shell脚本对空格要求非常严格, 如: 比较字符串   (不能用于比较字符串) 以上这种写法会报错 因此比较字符串不用 单中括号 [ ] -----------------有误 而是用双中括号[ [ ] ] ,比较两字符串中间用等号,用eq,lt ,gt 不起作用 ,        (正确格式) 且注意中括号和字母之间要有空格,否则会报错    (错误格式) 比较数字则单双中括号都可以用,-eq -lt  -gt  > <  =没有限制,但中括号和字母之间必须要有空格 if…
二元比较操作符,比较变量或者比较数字. 注意数字与字符串的区别. 1.整数比较  -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如:if [ "$a" -ne "$b" ] -gt 大于,如:if [ "$a" -gt "$b" ] -ge 大于等于,如:if [ "$a" -ge "$b" ] -lt 小于,如:if…
今天上午在写一个需求,要求的比较急,要求当天完成,我大致分析了一下,可以采用从shell脚本中插入一连串的日期,通过调用proc生成的可执行文件,将日期传入后台数据库,在数据库中进行计算.需要切分日期的字符串,转化成整数,插入int 数组中,手工实现太慢,就直接借用系统的strstr函数来用了. 场景模拟: 1. shell脚本: #diao.sh #!/bin/bash date1="20170622,20170623,20170626,20170627,20170628,20170629,2…
今天上午在写一个需求,要求的比较急,要求当天完成,我大致分析了一下,可以采用从shell脚本中插入一连串的日期,通过调用proc生成的可执行文件,将日期传入后台数据库,在数据库中进行计算.需要切分日期的字符串,转化成整数,插入int 数组中,手工实现太慢,就直接借用系统的strtok函数来用了. 场景模拟: 1. shell脚本: #diao.sh #!/bin/bash date1="20170622,20170623,20170626,20170627,20170628,20170629,2…
一.Shell 变量 1.1 定义变量 定义变量时,变量名不加美元符号($),如: your_name="runoob.com" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.同时,变量名的命名须遵循如下规则: 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头. 中间不能有空格,可以使用下划线(_). 不能使用标点符号. 不能使用bash里的关键字(可用help命令查看保留关键字). 除了显式地直接赋值,还可以用语句给变量赋值,如: #这行也可以使用…
在ubuntu 14.04之后,所有的U盘挂载也分用户之分,最近很多操作也和U盘有关,所以就研究了一上午shell脚本函数以及字符串操作的方法. 字符串操作: 获取他的命令输出比较简单,打个简单的比方,我想获取whoami 的用户名,那么直接可以使用如下代码. ```sh #!/bin/sh USER_NAME=$(whoami) main() { sudo cp target/* /media/$USER_NAME/rootfs/ -rf } main ``` ```sh #如果你想操作这些字…
1.将当前目录下包含jack串的文件中,jack字符串替换为tom sed -i "s/jack/tom/g" `grep "jack" -rl ./` 2.将某个文件中的jack字符串替换为tom sed -i "s/jack/tom/g" test.txt 3.不检索某个文件 sed -i "s/jack/tom/g" `grep "jack" -rl --exclude="replacena…
#/bin/bash #功能:QA服根据模板创建区配置文件并提交到svn上. SOURCE_PATH=/data/source_code SVN_PATH=/code/psm   #svn发布目录,要先推送到这个目录,然后更新提交 dir="/data/source_code/configfiles" default_conf="config.properties" default_socket_conf="socket.lp" LOG_FILE…
Shell字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号.单双引号的区别跟PHP类似. 单引号 str='this is a string' 单引号字符串的限制: 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的: 单引号字串中不能出现单引号(对单引号使用转义符后也不行). 双引号 your_name='qinjx' str="Hello, I know your are\"…
1. Shell脚本语法 1.1. 条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与C语言的逻辑表示正好相反).例如测试两个数的大小关系: $ VAR=2 $ test $VAR -gt 1 $ echo $? 0 $ test $VAR -gt 3 $ echo $? 1 $ [ $VAR -gt 3 ] $ echo $? 1 虽然看起来很奇怪,但左方括号[确…
条件测试:test  和  [ 命令 test 或 [ 可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与C语言的逻辑表示正好相反). 例如测试两个数的大小关系: itcast@ubuntu:~$ var= itcast@ubuntu:~$ test $var -gt itcast@ubuntu:~$ echo $? // 查看返回值 0 // 真 返回0 itcast@ubuntu:~$ test $v…
昨天在定位一个bug的时候,需要些shell脚本,用到了字符串的比较,出了一个小问题,就搜索总结了一下. 第一种方法:-eq 对比字符串是否相等,我首先想到的就是 -eq,然而打印的结果不正确.各种echo后,就是字符串对比那里不对,我以为我记错了,还专门看了我记得笔记: , 没错啊,就是-eq啊,括号格式的也都对,但是为什么结果不对呢,百度了一下,才明白怎么回事,原来是-eq只支持整数的比较,而我比较的是字符串,当然不行了. 第二种方法: = 这个就通用了,不管是字符串.整数.小数,都可以比较…
一.分支语句 1.条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与C语言的逻辑表示正好相反).例如测试两个数的大小关系: [root@VM_0_5_centos test]# var=4 [root@VM_0_5_centos test]# test $var [root@VM_0_5_centos test]# echo $? 0 [root@VM_0_5_ce…
条件测试 1. 条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假, 则命令的Exit Status为1(注意与C语⾔言的逻辑表⽰示正好相反).例如测试两个数的大小关系: 虽然看起来很奇怪,但左方括号[确实是一个命令的名字,传给命令的各参数之间应该⽤空格隔开,比如,$VAR.-gt.3.]是[命令的四个参数,它们之间必须⽤空格隔开.命令test或[的参数形式是相同的,只不过test命令不需要]参数.以[命令为…
Android作为一款Linux终端,肯定是支持.sh后缀的Shell脚本的运行的, 有时候测试环境准备或者长时间截取复杂的日志等,开发会给到一些Shell脚本. Shell脚本的执行的优势: 快捷高效,Shell脚本是Linux终端都支持的. 由于执行及测试结果都在Linux终端内部存储,不会出现因为反复通过USB与Windows电脑进行输入输出导致的Android系统的I/O CPU消耗过大. 如何通过Python来运行Shell脚本呢? 何为高端地用Python运行Shell脚本,这里边的…
在 shell 脚本获取 ip.数字转换等网络操作 ip 和数字的相互转换 ip转换为数字 :: function ip2num() { local ip=$1 local a=$(echo $ip | awk -F '.' '{print $1}') local b=$(echo $ip | awk -F '.' '{print $2}') local c=$(echo $ip | awk -F '.' '{print $3}') local d=$(echo $ip | awk -F '.'…
第二十七章:shell脚本编程进阶 监测系统统计数据 系统快照报告 1.运行时间 uptime命令会提供以下基本信息: 当前时间 系统运行的天数,小时数,分钟数 当前登录到系统的用户数 1分钟,5分钟,15分钟的平均负载 $ uptime 16:20:51 up 2 days, 3:11, 9 users, load average: 0.01, 0.02, 0.05 2.磁盘使用情况 $ df -h Filesystem Size Used Avail Use% Mounted on /dev…
[脚本5]数字求和 编写shell脚本,要求输入一个数字,然后计算出从1到输入数字的和,要求,如果输入的数字小于1,则重新输入,直到输入正确的数字为止,示例: 一.脚本 #!/bin/bash while : do read -p "Please enter a positive integer: " n if [ $n -lt 1 ] then echo "It can't be less than 1" else break fi done num=1 for…
可以将shell脚本代码放进函数中封装起来,这样就能在脚本中的任何地方多次使用它了. 17.1 基本的脚本函数 函数:是一个脚本代码块,可以为其命名并在代码中任何位置重用. 17.1.1 创建函数 有两种格式:name 是函数名 1) function name {          commands } 2)这种就比较接近c语言风格了 name() {          commands } 17.1.2 使用函数 跟其他shell命令一样,在行中指定函数名就好了. 在函数定义前使用函数,会收…
shell脚本中引号也是有讲究的. 可以分为单引号‘ ’,双引号“ ”和 反引号 ` ` 具体区别来看一个例子 输出结果 可得出结论 1. 单引号括起来的字符都作为普通字符出现,如第4,7,10,13,16,19,22行 值得一提的是第19行,执行结果并非预期的 My home dictory is : ‘$HOME’  而是 My home dictory is :/root 原因是执行的时候My home dictory is : ‘$HOME’  这里还有单引号,$HOME继续作为普通字符…
自学Linux命令行与Shell脚本之路[第一回]:初识Linux   1.1 自学Linux Shell1.1-Linux初识 1.2 自学Linux Shell1.2-Linux目录结构 1.3 自学Linux Shell1.3-Linux文件系统 自学Linux命令行与Shell脚本之路[第二回] : 走进shell 2.1 自学Linux Shell2.1-进入shell命令行 2.2 自学Linux Shell2.2-GHOME Terminal仿真器 自学Linux命令行与Shell…
Shell 简介 hell是linux的一外壳,它包在linux内核的外面,为用户和内核之间的交互提供了一个接口 当用户下达指令给操作系统的时候,实际上是把指令告诉shell,经过shell解释,处理后让内核做出相应的动作 系统的回应和输出的信息也由shell处理,然后显示在用户的屏幕上什么是shell脚本 什么是shell脚本? 简单的说,当命令或者程序不在命令行执行,而是通过一个程序文件来执行,这个程序就被称为shell脚本 也就是在shell脚本里内置了多条命令,语句,循环控制,然后将这些…
转至:https://www.cnblogs.com/tui463/archive/2004/01/13/12663024.html shell脚本练习案例 案例一:通过位置变量创建系统账户及密码 分析 (1)通过位置变量创建 Linux 系统账户及密码 (2)创建用户,111为第一个变量 (3)为用户设置密码,123456为第二个变量 实现 #!/bin/bash useradd "111" echo "123456" | passwd --stdin "…
Shell脚本编程30分钟入门 转载地址: Shell脚本编程30分钟入门 什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_tut for ((i=0; i<10; i++)); do touch test_$i.txt done 示例解释 第1行:指定脚本解释器,这里是用/bin/sh做解释器的 第2行:切换到当前用户的home目录 第3行:创建一个目录shell_tut 第4行:切换到shell_tut目录 第5行:循…
在写程序时,会用到条件判断,测试条件是否成立.很多时候,判断条件是多个的,这个时候需要用到逻辑操作符.shell脚本中常用的有哪些逻辑操作符呢? 1.逻辑与: -a 格式: conditon1 -a condition2 结果:codition1和conditon2 都为真,才返回真,否则返回假. 演示:测试可执行文件lnmp [root@localhost ~]# [ -x lnmp -a -f lnmp ]   #lmmp是可执行且是文件 结果返回真 [root@localhost ~]# …
Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令:PATH fork()创建为一个进程: 把要运行的一系列命令,写在文件中: 脚本或程序源文件:文本文件 两种方式: 编译执行:预处理---->编译---->汇编---->链接:事先完成,结果:二进制程序文件 C,C++ 解释执行:由解释器全程参与运行过程,每次读取一行,运行一行: Pyth…
使用 Linux 系统这么长时间,对 shell 脚本也算是比较熟悉.其实不管是搞开发,还是搞运维,shell 脚本都是必备的基本技能.这次抽时间好好总结一下 shell 方面的知识,综合的再学习一下,记录.这篇文章总结的是 shell 脚本的 if 语句的使用. 一.if 语句的基本语法 if [ 条件判断 ]; then ... ... elif [ 条件判断 ]; then ... ... else ... ... fi 二.文件/目录的判断 关于文件或目录的相关判断方法: [ -e fi…
转载自:http://www.92csz.com/study/linux/12.htm  学习 shell脚本之前的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本的编写是必考的项目.有的单位甚至用shell脚本的编写能力来衡量这个linux系统管理员的经验是否丰富.笔者讲这些的目的只有一个,那就是让你认真对待shell脚本,从一开始就要把基础知识掌握牢固,然后要…
Shell文件包含 shell也可以包含外部脚本,语法格式如下: . filename 或 source filename 例如创建两个shell脚本. 脚本1:test1.sh url = "www.baidu.com" 脚本2:test2.sh . ./test1.sh echo "$url" 执行test2.sh,即可看到结果. Shell输入输出重定向 命令 说明 command>file 将输出重定向到file command<file 将输入…
shell是一种程序设计语言,是访问操作系统内核的服务. Linux的shell种类常见的有: Bourne Shell(/usr/bin/sh或/bin/sh) Bourne Again Shell(/bin/bash) C Shell(/usr/bin/csh) K Shell(/usr/bin/ksh) Shell for Root(/sbin/sh) Shell脚本执行的两种方法 ./shell.sh 根据shell脚本第一行指定的shell执行 /bin/sh test.sh 根据命令…