Linux_Bash脚本基础
2015-12-26 11:12
447 查看
目录
目录Bash使用基础
if 语句
运算符
逻辑表达式
不将执行指令的结果显示出来
echo 语句
从Bash接受输入参数
Case语句
循环
for 语句
While语句
内置变量和函数
AWK Command
Bash使用基础
1. 显示脚本的执行的详细步骤:sh -x shellScript.sh
2. 判断一条指令是否执行成功
netstat -lpntu | grep 80 echo $? #If output=0 --> 执行指令成功 #If output=1 --> 执行指令不成功
if 语句
格式:if [ Param1 逻辑运算符 Param2 ] then commands1 elif commmands2 else commands3 fi
Example:
############################ 判断服务启动状态 service httpd start &> /dev/null service httpd status &> /dev/null if [ $? -eq 0 ] then echo "start httpd successfully!" else echo "start httpd faild!" fi ############################# SCRIPT END
运算符
$:Shell 中的特殊变量 a. $0 --> 表示Shell或Shell Script的名字 b. $* --> 以一对双引号给出参数列表 c. $@ --> 将各个参数分别加双引号返回 d. $# --> 表示参数的个数 e. $! --> 代表最后执行的后台指令的PID f. $$ --> 代表所有指令的PID g. $_ --> 表示上一个命令的最后的一个参数 h. $? --> 代表上一个指令执行后的退出状态 i. $Number --> 代表脚本名后跟这第Number个参数 '' 和 "": 单双引号表示字符 ``: 撇号表示执行``中的指令后返回的结果,并且以列表的形式存放,可以结合for循环语句,将指令执行的结果作为循环的条件
逻辑表达式
-gt --> > greater than 大于 -ge --> >= greater equal 大于等于 -lt --> < less than 小于 -le --> <= less equal 小于等于 -eq --> = 等于 -ne --> != not equal 不等于 -z --> null 为空 -f --> 判断是否存在
Example:
判断是否存在D/D/N.tar.$H文件 –> 判断是否存在 -f
if [-f $D/$N.tar.$H]
不将执行指令的结果显示出来
Commands &> /dev/null
Example:
service httpd start &> /dev/null
echo 语句
不换行显示:echo -n echo -n "HI Jmilk!" ; echo "How are you?"
获取变量内的体积
echo ${#names}
从Bash接受输入参数
########################## 从Bash接受一个参数,再返回一个输出 read -p "Ple input the parameter !" param echo -n "Parameter is " echo $param ########################## SCRIPT END
Case语句
一般用于程序启动脚本Syntax:
case $1 in Param1) Commands ;; Param2) Commands ;; *) Commands esac
Example:
#!/bin/bash -e #/bin/bash -e 表示系统发生第一个错误时就中止脚本执行 #每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。 # chkconfig:35 12 45 #第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 – 代替运行级。 # description:Service start script #第二行对服务进行描述,可以用\ 跨行注释。 RETVAL=0 case $1 in start) echo "service starting..." ;; stop) echo "service stopping..." ;; restart) #$0 meating is this one script sh $0 stop || true # $0 stop || ture 表示出现错误时候不想中止的指令 sh $0 start ;; *) echo "input syntax error!" echo "Usage:Is [start|stop|restart]" exit 1 ;; esac echo $RETVAL ###################################SCRIPT END
循环
for 语句
格式1:for VariableName in Parameter1 Param2 Param3 do commands done
格式2:
for ((初始值;限制值;执行步进)) do commands done
Example:
#################################### 批量创建用户 #!/bin/bash n=`cat /root/userList.txt` #``内的指令结果赋值给vairable n for name in $n do useradd $name echo 123 | passwd --stdin $name done ###################################### SCRIPT END
While语句
格式:while 条件 do commands done
Example:
##################################### 猜价格脚本 #!/bin/bash num=`echo $((RANDOM%1000+1))` echo "Welcome use!" while true do read -p "input a number(1-1000)" n let t++ if [ $n -eq $num ] then echo "Right!The price is {num}}" echo "You make a guess at ${t}" break elif [ $n -gt $num ] then echo "greater then" else echo "less then" fi done ###################################### SCRIIPT END
内置变量和函数
a. 获取随机数 RANDOM: echo $RANDOM echo $((RANDOM%100+1)) #生成1-1000的随机数 b. 判断是否为整型: num.isdigit(variableName) c. 定义列表 list=[vairabe1,variable2 d. 为列表添加元素 list.append('%s' % variableName) e. 从列表中删除一个数 listTableName.remove('%s' % variable) f. 从列表中随机选取一个数 c=random.choice(listTableName) g. 判断一个元素是否在列表中 if 'variabeName' in list listTableName
AWK Command
awk 就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。工作原理:读入并分割有’\n’换行符的的一天记录,再将这条记录以(-F ” “)指定的特定分割符来划分出域,填充域,最后使用Number 来选择显示第几个域并{printNumber 来选择显示第几个域并{print Number} 显示。没有-F指定特定分隔符时,默认分隔符为”空白键” 或 “[tab]键”。
grep ^user /etc/passwd | awk -F : '{print $1}'| grep -v ^root
相关文章推荐
- bash: export: `=': 不是有效的标识符
- 学习笔记(9)——shellscript
- .bash_profile和.bashrc的区别(如何设置生效)
- 本地shell执行远程命令
- Linux Shell 脚本基础
- android shell 常用的命令
- shell中对文本的一些处理
- Shell系列 - Mac OS X自动下载切换桌面壁纸
- 使用powershell/vbs自动化模拟鼠标点击操作
- A bash script for tool version test
- shell自动配置bond
- Jenkins执行远程Linux系统的shell命令
- shell截取字符串方法
- linux shell 笔记
- Linux Shell编程入门
- Shell脚本语法
- vbs下载者和powershell下载器
- tomcat maven shell 脚本省时省力
- Shell 执行Junit
- shell脚本在日常工作中的使用--辅助生成代码