文档章节

shell脚本demo

泡海椒
 泡海椒
发布于 2016/01/15 15:44
字数 823
阅读 36
收藏 2

数组定义mytest=(hello world)
echo ${mytest[1]}输出world
echo ${mytest[*]} hello world
mytest[1]=nihao变为hello nihao
删除 unset mytest[1]
删除全部 unste mytest
#!bin/bash通知shell以bash/shell来执行程序

echo命令可以使用单引号和双引号来将文本字符串圈起来, 如果在文本字符串用到他们的话,要在文本中使用其中一个引号
> echo "hello 'world'"
hello 'world'
> echo 'hello "world"'
hello "world"
同一行显示一个字符串作为命令输出[两边空格]
echo -n " the time and date are "
输入重定向
wc <123.txt
     206     614   41406
内联输入重定向是双小于号<<[必须指定一个文本标记来划分数据的开始和结尾]
 wc <<EOF
> test string 1
> test string 2
> test string 3
> EOF
3       9      42
数学运算
 expr 1 + 5[中间空格]
 6
 expr 1 * 5
expr: syntax error

 expr 1 \* 5
5
 var1=10
 var2=20
 var3=`expr var2 / $va1`
 使用方括号计算只支持整数计算
 var=$[1 + 5]
 echo $var
 6
 var1=$[$var * 2]
 12
 浮点解决方案
 bc
 scale=4【设置四位浮点数】
 
scale=4
3.44/5
.6880
脚本中使用bc计算
var=` echo "scale=4; 3.44/5"|bc`
查看状态吗$?

if语句
if ls -trl *
then
command
else
command
fi

if [ condition ]条件可以是数值比较,字符串比较,文件比较
then
command
else
command
fi


数值比较-eq相等,-ge大于等于,-gt大于,-le小于等于,-lt小于,-ne不等
字符串比较
str1=str2字符串是否相等,str1=str2字符串是否不同,str1<str2,str1>str2,-n str1 长度是否非0 ,-z str1长度是否为0
if [ $1 = $2 ]
then
 echo "hello"
else
echo "world"
fi

if [ $1 \> $2 ]
then
 echo "hello"
else
echo "world"
fi

if [ -n "$1" ]
then
 echo "hello"
else
echo "world"
fi
文件比较
-d:file是否存在并在同一个目录,-e:检查文件是否存在,-f:检查文件是否存在并且是一个文件、
-r::检查文件是否存在并且可读,,-s:检查文件是否存在并且非空,w检查file是否存在并且可写
-x可执行 -O是否为当前用户所属;-G检查文件是否存在并且默认与当前用户相同
file1  -nt file2 检查是否更新file1  -ot file2 检查是否更旧
if [ -d $HOME ]
then
 echo "hello"
else
echo "world"
fi
if [ ./list -nt ./test ]
then
 echo "hello"
else
echo "world"
fi
复合条件测试
[ condition ] && [ condition ]
[ condition ] || [ condition ]
使用双圆括号:允许使用高级数学表达式放入比较中
((expression))
val++,val--,++val,--val,!逻辑求反,~位求反,**觅求算,<<左位移,>>右位移,&位布尔求和,|位布尔求或,&&逻辑与,||逻辑或
if  (($1++>1))
then
 ((val=$1**100))
 echo $val
else
echo "world"
fi
双方括号:针对字符串比较的高级特性
if  [[ $USER == l* ]]
then
 echo "hello"
else
echo "world"
fi
case命令
case $1 in
hello) echo "hello";;
world) echo "world" ;;
esac
遍历目录
for f in `ls -trl`
do
 echo "the file : $f"
done

对变量读取列表
list="alabama alask acd kxsoa "
for state in $list

从命令读取
for state in `cat $file`
更改字段的分隔符(默认的为空格,字表,换行)
IFS=$'\n'

指定多个分隔符
IFS=$'\N;:"'
IFS.OLD=$IFS
IFS=$'\N;:"'
IFS=$IFS.OLD
//for循环
for(((i=1;i <=10;i++))
do
echo $i
done
while [ $var -gt 0 ]
do
done
//break &continnue
for  i in 1 2 3 4 5 6 7 8 9
do
if [ $i -eq 5 ]
then
 break;
fi
echo $i
done



 



© 著作权归作者所有

上一篇: hive之环境搭建
下一篇: yum源
泡海椒
粉丝 11
博文 282
码字总数 288344
作品 0
成都
程序员
私信 提问
linux实现php定时执行cron任务详解

对于PHP本身并没有一套解决方案来执行定时任务,不过是借助sleep函数完成的。这种方就是要提前做一些配置,如实现过程: 代码如下: ignoreuserabort();//关掉浏览器,PHP脚本也可以继续执行....

linghangp
2013/12/25
542
1
我想写一个centos的shell脚本,执行一条脚本同时运行集群内的六台机器??

我想写一个centos的shell脚本,执行一条脚本同时运行集群内的六台机器??求脚本demo

天池番薯
2016/03/08
1K
2
spark程序中调用shell脚本

scala直接调用shell脚本是不行的,但是可以利用java调用shell脚本然后在spark代码中引入java代码实现。 参考:java代码调用shell脚本 shell脚本必须在spark的driver端调用,在worker端只能处...

神秘的寇先森
02/27
0
0
Shell 执行Junit

1、什么是Shell Unix操作系统下的shell既是用户交互的界面,也是控制系统的脚本语言。当然在这点也有别于Windows下的命令行,虽然也提供了很简单的控制语句。在Windows操作系统下,可能有些用...

Java_Coder
2015/12/25
468
0
shell多个脚本同时执行

1、编写多进程实验脚本 demo.sh #!/bin/bash >sub1.log;>sub2.log;>sub3.log function sub1 { for i in {1..5} do echo >> sub1.log #注意date 和+号之间有空格。如:date +%m/%d date取"月/......

科技探索者
2017/11/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

北斗三号IGSO-2卫星发射成功!

6月25日,中国航天科技集团官方公众号宣布,北斗三号IGSO-2卫星发射成功! 航天科技集团表示,6月25日2点09分,我国在西昌卫星发射中心用长征三号乙运载火箭成功将北斗三号第2颗倾斜地球同步...

linuxCool
8分钟前
0
0
阿里java开发规约的Idea插件安装(英文)

Idea Plugin Prepare Project JDK: 1.7+ Gradle: 3.0+(Require JDK1.8+ for gradle) Build cd p3c-ideagradle clean buildPlugin Run plugin cd p3c-ideagradle runIde# run speci......

Airship
18分钟前
0
0
很多人转行做程序员选择web前端学习,前端简单在哪里?

不管你是工人阶层还是服务行业,是否想过转行IT,转行IT后肯定会选择一门编程语言进行深入学习,很多转行的人基础都不是太好,不是科班出身,甚至有的是专科乃至中专,前端的HTML和CSS相对其...

智云编程
31分钟前
0
0
一文读懂内网、公网和NAT

我们做弱电监控系统的时候,都避免不了要跟IP地址打交道,比如摄像头、NVR、服务器等这些设备安装好之后,就需要给它们配上IP,那这个IP地址你了解嘛?今天我们就一起来聊聊什么是内网、公网和...

老孟的Linux私房菜
35分钟前
4
0
聊聊dubbo的ExecuteLimitFilter

序 本文主要研究一下dubbo的ExecuteLimitFilter ExecuteLimitFilter dubbo-2.7.2/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/ExecuteLimitFilter.java public clas......

go4it
44分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部