在家百度统计网站打不开,安全的网站建设推广,WordPress怎么改导航文字加小图标,公司资质查询官方网站版权声明#xff1a;本文为博主原创文章#xff0c;遵循 CC 4.0 BY-SA 版权协议#xff0c;转载请附上原文出处链接和本声明。 大数据系列文章目录 目录 定义变量#xff0c;输出变量输盘输入#xff0c;执行Lunix命令变量禁止修改变量删除获取传递的变量字符串拼接…版权声明本文为博主原创文章遵循 CC 4.0 BY-SA 版权协议转载请附上原文出处链接和本声明。 大数据系列文章目录 目录 定义变量输出变量输盘输入执行Lunix命令变量禁止修改变量删除获取传递的变量字符串拼接转义获取字符串长度截取字符串查询字符串算术运算流程控制if流程控制if-else流程控制if-test流程控制if-elif-elsefor循环while循环casebreakcontinuefunctionarrayselectselect 和 case引用其他.sh文件综合小案例猜数字创建文件并且拷贝到指定位置统计/var/log中的文件个数并打印文件名用户输入3个数并按从小到大依次输出 定义变量输出变量
#!/bin/bash
stringI am shell
num5
echo a${num},string${string}输盘输入执行Lunix命令
#!/bin/bash
echo who are you?
read name #从键盘获取变量的值
pwd_string$(pwd) #将当前绝对路径赋值给pwd_string变量
date_stringdate #将当前时间赋值给date_string变量注意这里使用的是反引号
echo hello,${name}
echo $pwd_string
echo $date_string变量禁止修改
#!/bin/bash
myUrlhttp://www.google.com
readonly myUrl
myUrlhttp://www.google.com变量删除
#!/bin/bash
myUrlhttp://www.google.com
unset myUrl
echo ${myUrl}
获取传递的变量
#!/bin/bash
echo Shell 传递参数实例;
echo 当前文件的名称$0;
echo 第一个参数$1;
echo 第二个参数$2;
echo 第三个参数$3;
echo 参数的个数$#;
echo 传递的参数作为一个字符串显示*$*;字符串拼接转义
#!/bin/bash
yourname吴恩达
wenhou_1你好,$yourname.
wenhou_2你好,$yourname.
wenhou_3你好,\$yourname\.
echo $wenhou_1 $wenhou_2 $wenhou_3获取字符串长度
#!/bin/bash
strjobs
echo ${str}
echo ${#str}
~ 截取字符串
#!/bin/bash
str敢于亮剑绝不后退
echo ${str:0:2} #第一位数字是从几位开始第二位数字是截取几位查询字符串
#!/bin/bash
stri am a boy
echo expr index $str io算术运算
#!/bin/bash
a4
b20
#加法运算
echo expr $a $b
#减法运算
echo expr $a - $b
#乘法运算,注意*号前面需要反斜杠
echo expr $a \* $b
#除法运算
echo expr $a / $b
#此外还可以通过$(())、$[]进行算术运算
echo a $a
c$((ab))
d$[ab]
echo c $c
echo d $d流程控制if
#!/bin/bash
if [ $(ps -ef | grep -c ssh) -gt 1 ] #grep -c 用于统计字符串出现的次数
thenecho true
fi#!/bin/bash
DIR/media/cdrom
if [ ! -e $DIR ]
thenecho 不存在${DIR}这个文件mkdir -p $DIR
fi
流程控制if-else
#!/bin/bash
read -p Enter you age(1-100) : age
if [ $age -ge 18 ]
thenecho 已经成年
elseecho 未成年
fi流程控制if-test
#!/bin/bash
echo 计算2个数是否相等
read -p 请输入第一个数 num1
read -p 请输入第二个数 num2
if [[ ! $num1 ~ ^[0-9]$ ]] || [[ ! $num2 ~ ^[0-9]$ ]]
thenecho 请输入数字exit
fiif test $num1 -eq $num2
thenecho 2个数相等
elseecho 2个数不相等
fi流程控制if-elif-else
#!/bin/bash
echo 请输入a的值
read a
echo 请输入b的值
read bif [ $a $b ]
thenecho 2个数相等
elif [ $a -gt $b ]
thenecho a大于b
elif [ $a -lt $b ]
thenecho b大于a
elseecho 没有符合的条件
fi
#!/bin/bash
echo 判断成绩优、良、中、差
read -p Enter you score(0-100) n #-p表示给出提示信息
if [ $n -ge 85 ] [ $n -le 100 ];thenecho 优
elif [ $n -ge 70 ] [ $n -le 84 ];thenecho 良
elif [ $n -ge 60 ] [ $n -le 83 ];thenecho 中
elseecho 差
fifor循环
#!/bin/bashecho --------------------------------第一个for循环-------------------------------for loop in 1 2 3 4 5
doecho $loop
doneecho --------------------------------第二个for循环--------------------------------for str in This is a string
doecho $str
doneecho --------------------------------第三个for循环--------------------------------for file in $(ls /root)
doecho $file
doneecho --------------------------------第四个for循环--------------------------------for(( i 1; i 10; i ))
doecho $i
doneecho --------------------------------第五个for循环--------------------------------
echo 计算从1加到100的累加值
s0
for((i 1; i100; i))
do
s$(($s $i))
done
echo 从1加到100的和为$swhile循环
#!/bin/bashecho ---------------------------------------第一个while循环----------------------------------num1
while (( $num 5 ))
do
echo $num
let num
doneecho --------------------------------------第二个while循环----------------------------------sum0
i1
while [ $i -le 100 ]
dolet sumsum$ilet i
done
echo 从1加到100之后的值为$sumecho --------------------------------------第三个while循环----------------------------------#while :
#do
#echo 我是无限循环
#done#while true
#do
#echo 我是无限循环
#donefor((;;))
do
echo 我是无限循环
donecase
#!/bin/bash
echo 请输入 1 到 4 之前的数字
read num
case $num in1) echo 你选择了1;;2) echo 你选择了2;;3) echo 你选择了3;;4) echo 你选择了4;;*) echo 你没有输入1到4之间的数字;;
esacbreak
#!/bin/bashecho 输入1 到 5之间的数字否则游戏结束
while :
doecho -n 请输入 1 到 5 之间的数字read numcase $num in1|2|3|4|5) echo 你输入的数字为$num;;*) echo 你输入的数字不是1到5之间的game overbreak;;esac
donecontinue
#!/bin/bashwhile :
do
echo -n 请输入1 到 5之间的数字
read num
case $num in1|2|3|4|5) echo 你输入的数字为$num;;*) echo 你输入的数字不是1到5之间的GameOvercontinueecho 游戏结束;;
esac
donefunction
#!/bin/bashecho ---------------------------------这是第一个函数---------------------------
function demoFun(){echo 这是一个函数
}echo 函数开始执行-------
demoFun
echo 函数结束执行-------echo --------------------------------这是第二个函数----------------------------function funWithReturn(){echo 这里的函数会对2个数进行相加运算echo 输入第一个数字read num1echo 输入第二个数字read num2echo 两个数字分别为$num1 和 $num2echo 两个数的和为$((num1 num2))return $(($num1 $num2))
}funWithReturnecho 退出状态码:$?!echo --------------------------------这是第三个函数-----------------------------funWithParam(){echo 第一个参数为$1 echo 第二个参数为$2 echo 第十个参数为$10 echo 第十个参数为${10}echo 第十一个参数为${11}echo 参数的总数为$# 个echo 作为一个字符串输出所有的参数$*
}funWithParam 1 2 3 4 5 99 78 989 132 123 12312array
#!/bin/bashmy_array(A B C D)array_name[0]value0
array_name[1]value1
array_name[2]value2echo my_array中第一个位置的值为${my_array[0]}
echo array_name中第一个位置的值为${array_name[0]}echo my_array中的所有元素为${my_array[*]}
echo array_name中所有元素为${array_name[]}echo my_array数组的长度为${#my_array[]}
echo array_name数组的长度为${#array_name[*]}echo ---------------遍历数组第一种方式------------------for var in ${my_array[*]}
do
echo $var
doneecho ---------------遍历数组第二种方式-----------------arrayNameLength${#array_name[]}
for (( i 0; i arrayNameLength; i ))
doecho ${array_name[$i]}
doneselect
#!/bin/bashecho What is your facourite OS?
PS3Please enter your choice:
select var in Linux Gnu Hurd Free BSD Other
do
break;
done
echo You have selected $varselect 和 case
#!/bin/bash
echo select和case结合使用
echo 你想学习什么语言
PS3请输入你的选择:
select var in java c python go javaScript;
do
case $var injava)echo 恭喜你选择成功.java最牛;;c)echo 驱动开发 网路优化 C ;;python)echo 人工智能 机器学习 python;;go)echo 性能之王 超越各种语言 未来发展支柱 go;;javaScript)echo 发展悠久 久盛不衰 javaScript;;*)echo 你不是守规矩的人;;esacbreak; # 如果这里没有break 将会无限循环
doneecho 你选择的是$var引用其他.sh文件
#!/bin/bash
source ./test23_array.shecho ---------------------------------------------测试引用包含其他文件----------------------------------------
for var in ${my_array[*]}
doecho 测试引用包含其他文件$var
done综合小案例
猜数字
游戏规则为程序内置一个1到100 之间的数字作为猜测的结果由用户猜测此数字。用户每猜测一次由系统提示猜测结果大了、小了或者猜对了直到用户猜对结果则提示游戏结束。
#!/bin/bashrandomNumber_array[0]1for(( i 1; i100; i))
do
randomNumber_array[i]$((i1))
done#echo randomeNumber_array${randomNumber_array[*]}number${randomNumber_array[RANDOM%1001]}while :
doread -p 计算机生成了一个 1‐100 的随机数,你猜: readNumif [ $readNum -eq $number ]thenecho 猜对了break;elif [ $readNum -gt $number ]thenecho 大了elseecho 小了fi
done创建文件并且拷贝到指定位置
写一个脚本在用户目录下创建四个文件m1.txtm2.txtm3.txtm4.txt用Shell编程实现自动创建m1,m2,m3,m4四个目录并将 m1.txt,m2.txt,m3.txt,m4.txt四个文件分别拷贝到各自相应的目录下。
#!/bin/bashfor var in m1 m2 m3 m4;
doif [ -e /home/$var ]thenecho $var已存在,开始删除....$(rm -rf /home/$var)fiecho 开始创建文件$var.txt$(touch /home/$var.txt)echo 文件创建成功等待5s后开始创建$var目录$(sleep 5s)$(mkdir /home/$var)echo $var目录创建成功等待5s后开始将/home/$var.txt拷贝到/home/$var$(sleep 5s)$(mv /home/$var.txt /home/$var)echo 拷贝成功
done
统计/var/log中的文件个数并打印文件名
写一个shell脚本统计/var/log 有多少个文件,并显示这些文件名
#!/bin/bashsum0
for var in $(ls /var/log)
do
#if [ -f $var ]#thensum$((sum 1))echo $var
#fi
doneecho ---------------------------------------------------
echo /var/log中共有$sum个文件用户输入3个数并按从小到大依次输出
写一个shell脚本依次提示用户输入 3 个整数,脚本根据数字大小依次排序输出 3 个数字
#!/bin/bashread -p 请输入第一个整数 num_1read -p 请输入第二个整数 num_2read -p 请输入第三个整数 num_3one0
two0
three0
if [ $num_1 -ge $num_2 ]
thenif [ $num_1 -ge $num_3 ]thenthree$num_1if [ $num_2 -ge $num_3 ]thentwo$num_2one$num_3elsetwo$num_3one$num_2fielsethree$num_3two$num_1one$num_2fi
elseif [ $num_2 -ge $num_3 ]thenthree$num_2if [ $num_1 -ge $num_3 ]thentwo$num_1one$num_3elsetwo$num_3one$num_1fielsethree$num_3two$num_2one$num_1fi
fi
echo -------------------------------------------------------------------
echo 你输入的最大值为$three
echo 你输入的中间值为$two
echo 你输入的最小值为$one