#!/bin/bash declare var="xxx" # without space and use one = #1.judge whether the assignment statement returns true echo "----------------------test assignment in bracket --------------------------------" [ var="yyyy" ] &&…
[转]shell编程下 特殊变量.test / [ ]判断.循环.脚本排错 第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 [示例]脚本内容 [root@znix ~]# cat /server/scripts/show2.sh #!/bin/bash echo $1 $2 $# if [ $? == 0 ];then echo "OK" fi 实例1-1 执行的不同结果 [root@znix ~]# sh  /server/scripts/show2.…
shell编程系列6--shell中的函数 .函数介绍 linux shell中的函数和大多数编程语言中的函数一样 将相似的任务或者代码封装到函数中,供其他地方调用 语法格式 第一种格式 name() { command1 command2 ...... commondn } 第二种格式 function name { command1 command2 ...... commondn } .调用函数 直接使用函数名调用,可以将其想象成shell中的一条命令 函数内部可以直接使用参数 $.$..…
shell编程系列7--shell中常用的工具find.locate.which.whereis .文件查找之find命令 语法格式:find [路径] [选项] [操作] 选项 -name 根据文件名查找 -perm 根据文件权限查找 -prune 该选项可以排除某些查找目录 -user 根据文件属主查找 -group 根据文件属组查找 -mtime -n | +n 根据文件更改时间查找 -nogroup 查找无有效属组的文件 -nouser 查找无有效属主的文件 -newer file1 !…
第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 [示例]脚本内容 [root@znix ~]# cat /server/scripts/show2.sh #!/bin/bash echo $1 $2 $# if [ $? == 0 ];then echo "OK" fi 实例1-1 执行的不同结果 [root@znix ~]# sh  /server/scripts/show2.sh  1 2 3 4 6 1 2 5 [root@znix ~]# sh …
有下面非常经典的一个字符串复制程序. test1.c #include <stdio.h> int main() { char str_t[]="This String comes from t";//初始化字符数组 char str_s[]="This is an empty string ";//初始化字符数组 char *t=str_t;//初始化字符指针 char *s=str_s;//初始化字符指针 while(*s++=*t++)//*的优先…
在学习Linux BASH Shell编程的过程中,发现由于不经常用,所以很多东西很容易忘记,所以写篇文章来记录一下 ls   显示当前路径下的文件,常用的有 -l 显示长格式  -a 显示所有包括隐藏  -R 显示文件夹内的内容  -c 按照最后一次修改时间排序  -t 按照修改时间排序输出 echo 显示  -n 不换行 touch  创建一个文件,或者修改文件的访问时间和修改时间 touch -a file 只更改访问时间 -m之更改修改实际那 -t指定特定时间 cp  复制文件 -a 保…
Shell编程笔记与Windows下熟悉的批处理类似,也可以将一些重复性的命令操作写成一个脚本方便处理.   修改别人的脚本,运行后遇到个问题 setenv: command not found 查证后,原来setenv是csh的命令,我用bash去执行脚本自然就出错了.在脚本的首行加上一句#!/bin/csh,调用csh来运行脚本. 记录几个命令: 查看系统支持的所有shell:more /etc/shells 查看当前的shell类型:echo $SHELL 查看或修改某个用户的默认shel…
编程语言中都有条件判断,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脚本需重写,在为编写的脚本命名时发现存在同名脚本,才想起来是连接公司服务器的登录脚本,不想写俩脚本,怕记混了,那就整合一下.代码如下: #!/bin/bash#zxl.sh 脚本名 if [ $1 == 1 ] then        ssh a.a.a.a else        ssh b.b.b.b fi so easy,运行脚本  ./zxl.sh  1  和  ./zxl.sh  2  成功登录了公司服务器和虚拟机.今天登录的时候,却出问题了. 我…
Shell中的条件判断(测试)类型: 1) 整数测试 2) 字符测试 3) 文件测试 条件测试的表达式:        (注: expression 与 [] 之间空格不能省略) [ expression ] [[ expression ]] test expression expression的逻辑结果即为整个条件测试的结果,0为真,其他结果均为假. expression中为整数比较时: -eq: 测试两个整数是否相等, 比如 $A -eq $B;                      -…
linux shell中的变量类型?分字符串或者数字或者bool类型吗? 参考: http://www.cnblogs.com/nufangrensheng/p/3477281.html 不分! shell编程中 不分数据类型, 所有的变量都 是字符串. 要进行 数值 / 数字的 整数运算, 就要用let, expr, (( ))等方式进行! 另外, shell中 只能处理整数, 不能处理 浮点数. 要用浮点运算, 需要用bc 程序 双小括号的使用 [foo@localhost ~]$ myfu…
shell中比如比较字符串.判断文件是否存在及是否可读等,通常用"[]"来表示条件测试. 注意:这里的空格很重要.要确保方括号的空格. if ....; then                   python中的条件判断:   if ....:    (此处是冒号,不同于shell的分号) ....                        (由于强制缩进,所以不需要 fi)  ....   (python时注意必须缩进四个字符) elif ....; then        …
shell 编程中使用到得if语句内判断参数 –b 当file存在并且是块文件时返回真 -c 当file存在并且是字符文件时返回真 -d 当pathname存在并且是一个目录时返回真 -e 当pathname指定的文件或目录存在时返回真 -f 当file存在并且是正规文件时返回真 -g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真 -h 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效 -k 当由pathname指定的文件或目录存在并且设置了“粘滞”位…
一.测试 程序运行中经常需要根据实际情况来运行特定的命令或代码段.比如判断某个文件或目录是否存在,如果文件或目录不存在,可能首先创建文件或目录.举例说,要判断文件/var/log/mlocate文件是否存在,可以先ls该文件,然后用$?来判断,如下所示: #一个存在的文件 [root@Cfhost-170820-UCNK ~]# ls /var/lib/mlocate/ #如果ls成功,则$?返回值为0,说明该文件存在 [root@Cfhost-170820-UCNK ~]# echo $?0…
shell if判断中常用的a-z表达式含义 可通过在在linux中man test命令查看下列参数的详细用法   [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真. [ -d FILE ] 如果 FILE 存在且是一个目录则为真. [ -e FILE ] 如果 FILE 存在则为真. [ -f FILE ] 如果 FILE 存在且是一个普通文件则为真…
3. 常用命令 3.1 输出 3.1.1 echo命令 echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串.命令格式: echo arg name="coding" echo '$name\"'+" ${name}" #原样输出 $name\"+ coding echo `date` #当前日期 3.1.2 printf命令 printf 命令用于格式化输出, 是echo命令的增强版.它是C语言printf()库函数的一个有限的变…
shell编程2 一.条件判断语句 1.按照文件类型进行判断 eg:test -e /etc/passwd  或者  [ -e /etc/passwd ]  &&echo yes || echo no 注意[]两边必须有空格 2.按照文件权限进行判断 3.两个文件之间进行比较 注:Inode是i节点号,是区别文件是否是硬链接的最好方法 ,硬链接的i节点号相同. eg:ln /etc/passwd /etc/passwdin [ /etc/passwd -ef /etc/passwdin ]…
条件判断式----利用 if .... then ----多重 在同一个数据的判断中,如果该数据需要进行多种不同的判断时,应该怎么作?举例来说,上面的 sh06.sh 脚本中,我们只要进行一次 $yn 的判断就好 (仅进行一次 if ),不想要作多次 if 的判断. 此时你就得要知道底下的语法了: # 一个条件判断,分成功进行与失败进行 (else) if [ 条件判断式 ]; then 当条件判断式成立时,可以进行的指令工作内容: else 当条件判断式不成立时,可以进行的指令工作内容: fi…
linux shell编程,先等10秒再判断是否有进程存在,存在就再等10秒再杀了进程才运行 crontab每分钟执行一次,但5秒以上才有更新数据,有时候一分钟可能跑不完上一个进程,需要先等10秒再判断是否有进程存在,存在就再等10秒再杀了进程(有没有在都执行杀进程的命令)才运行,超过20秒没有执行完成就判断为假死异常了,需要删掉再继续运行.这样各种情况都考虑到了. #!/bin/sh PID=`ps aux | grep lstm_prob.py | awk '{print $2}'` if…
3. 字符处理命令 3.1 排序命令:sort (1)sort命令:#sort [选项] 文件名 选项 作用 -f 忽略大小写 -n 以数值型进行排序,默认使用字符串型排序 -r 反向排序 -t 指定分隔符,默认的分隔符是制表符 -k n[,m] 按照指定的字段范围排序,从第n字段开始,m字段结束(默认到行尾) (2)应用举例 ①排序用户信息文件:#sort /etc/passwd ②反向排序:#sort –r /etc/passwd ③按用户ID升序排序passwd文件:#sort -t ":…
1.条件判断式 按照文件类型进行判断: 两种判断格式: test -e /root/install.log [ -e /root/install.log ] 判断命令是否正确执行: [ -d /root ] && echo "yes" || echo "no" 按文件权限判断: 两个文件之间的比较: [ /root/stu.txt -ef /tmp/stu.txt] 两个整数之间的比较: 字符串的判断: a=21,b=56 [ "$a&qu…
1.按照文件类型进行判断(常用的)-b 判断该文件是否存在-d 判断是否存在,并且是否为目录(是目录就为真)-e 判断该文件是否存在(存在为真)-f 判断文件是否存在,并且是否为普通文件(是普通文件为真)-L 判断该文件是否存在.并且是否为符号链接文件(是符号链接文件为真) 2.按照文件权限进行判断(常用)注意:这里的判断是区分拥有者.所属群.其他者,只要这三个中有任意一个成立就为真-r 判断文件是否存在,并且是否拥有读写权限(有读权限为真)-w 判断文件是否存在,并且是否拥有写权限(有写权限为…
shell编程 1 echo -e 识别\转义符 \a \b \t \n \x十六进制 \0八进制 等等 #!/bin/bash echo -e "hello world" 执行脚本:方式1 :chmod 755 hello.sh ./hello.sh 方式2 :bash ./hello.sh(这种方式不需要给执行权限) 1 历史命令 history 直接回车就可以看到已经敲过得命令.-c清空缓存中和文件中的命令 -w将缓存中命令写入 家目录/.bash_history 这个命令可以帮…
在bash脚本编程中,我们经常做一些条件判断, 我们主要用到了三种,test,单中括号,双中括号 经常有看到不同的写法,如: [ $? –eq ] [[ $myvar == “mysql” ]] test -eq 并且还有看到一些并且和或的写法,如-a,-o,&&,||. 那这些都是怎么结合,有那么多的比较符号,我怎么记住,有什么注意事项. 1.test命令 test是bash的一个内建命令,用来测试后面给的条件是否为真,如 [root@localhost ~]# test -ne [ro…
shell 函数的使用 (md中, 列表本身是有格式的, 他要产生缩进, 其次,列表项和列表项之间, 可以留有一个空行, 是合法的, 允许的) shell函数,就是 就相当于一个命令来看待和处理的, 这有助于shell解释器的写法. 在调用方法上, 跟 命令的方式是一样的, 也是 函数名 arg1 arg2 ... 函数名就相当于命令名. 对于一个命令来说, 格式是: ls /etc 命令名 [options] arg... 所以函数也是一样 funcName arg1 arg2 ..., 这里…
https://blog.csdn.net/hack8/article/details/39672145 Linux Shell编程中的几个特殊符号命令 & .&& . || 2014年09月29日 16:52:47 hack8 阅读数:15838更多 个人分类: 编程嵌入式系统木马路由器   & 放在启动参数后面表示设置此进程为后台进程 默认情况下,进程是前台进程,这时就把Shell给占据了,我们无法进行其他操作,对于那些没有交互的进程,很多时候,我们希望将其在后台启动,…
if语句在任何编程中都是必不可少.至关重要的分支语句,shell也是如此,只不过各种编程中的方式和格式有点不太一样 shell编程中的if语句基本格式如下: if [ X$1 = XA ];then command; elif [ X$1 = XB ];then command; else command; fi 注意:[ ]前后都有空格和if以及变量分开 也可以写成如下形式: if test X$1 = XA;then    commandelif test X$1 = XB;then   …
按自己的意愿生活, 而且是::: 要敢于按自己的意志去活! 那是一种胆量和勇气!! shell中的结构, 只有选择(实际上if条件也是一种选择结构)和循环, 都是用关键字来替代 大括号的. 如: if 用 then ...fi来表示 代码段. case 变量 in 1)....;; 2)....;; *)....;; for 用 do... done. while也是用 do...done 来 表示代码段的. shell 中的关键字比如do, done, then等, 都是单独一行的.遵守普通规…
目录 shell编程的建立 shell的hello world! Shell的环境变量 使用和设置环境变量 Shell的系统变量 用户自定义变量 @(Shell编程) shell编程的建立 [root@localhost ~]# vi mytest 就建立了一个名叫mytest的文件 vim编辑器没有接触过,你就需要学习一下啊,这里介绍几个简单的命令: 单点I进入插入模式 Ctrl+c退出插入模式 在浏览模式按下":",再输入q是不保存退出.wq是保存并退出 shell的hello w…