ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Shell

2021-06-30 18:04:43  阅读:203  来源: 互联网

标签:Shell name expr age echo fi class


运行shell

sh xx.sh  运行脚本
chmod+x ./xx.sh  执行权限并运行脚本
shell脚本说白了就是一堆linux命令写在一个文件里面,然后统一执行

 

变量

name="besttest"
age=18
class=("1班" "2班" "3班" )  输出全部 echo ${class[*]}
${name}
$name
echo ${class[2]}  数组取值

 

取长度

name="beijing"
echo ${#name}
echo ${#class[*]}
echo ${class[*]}  

 

输入、输出

echo "xxx"
read name
单引号和双引号的区别 单引号是原样字符串,不会转义

 

运算

sum=`expr 1 + 1`
sum2=`expr ${age} + 1`

 

条件判断 -- 数值型运算符

-eq    等于
-ne   不等于
-lt   小于
-gt   大于
-lte   小于等于
-gte  大于等于

 

字符串运算符

=
!=

 

if格式

echo "请输入年龄:"
read age
if [ $age -gt 18 ]
then
echo "成年人"
elif [ $age -lt 18 ]
then
echo "未成年人"
else
echo "刚满18 岁"
fi


and和or

age=8
if [ $age -gt 10 -a ` expr $age % 2 ` -eq 0 ]
#if [ $age -gt 10 -o ` expr $age % 2 ` -eq 0 ]
then
echo "是大于10的偶数"
fi
字符串判断 name="beijing" if [ $name != "beijing" ] then echo "北京" fi

 

循环 -- 循环数组

class=("1班" "2班" "3班" )
for item in ${class[*]}
do
echo $item
done


for循环

for num in 1 2 3 4 5 6
do
echo $num
done

 

while循环

count=0
while [ $count -lt 10 ]
do
echo $count
count=`expr $count + 1`
done

 

函数

基本格式
my_print (){
echo "nihao"
}


有入参的
oushu(){
number=$1
if [ 0 -eq `expr $number % 2` ]
then
echo "偶数"
else
echo "奇数"
fi
}

oushu 5
oushu 4


直接用来判断的
abc="123"
delete(){
st=`expr 1 \* 1024`
file=$1
size=`du -k $file | awk '{print $1}'`
if [ $size -gt $st ]
then
abc="文件大于100m"
return 0
else
return 1
fi
}

if delete "test2.sh"
then
rm -rf "test.sh"
fi


获取返回结果的
delete "test2.sh"
result=$?
echo $result

 

重定向

content=`< test2.sh`
echo $content
keyword="nihao ya "
#echo $keyword > aaa.txt
echo $keyword >> aaa.txt

 

练习

启动mysql的脚本
arg=$1 pid=`ps -ef|grep /opt/lampp/sbin/mysqld |grep -v grep|awk '{print $2}'` command="/opt/lampp/lampp startmysql" stop_command="/opt/lampp/lampp stopmysql" start(){ if [ $pid ] then echo "mysql 已经启动了" else $command echo "mysql已启动" fi }
stop(){ if [ $pid ] then $stop_command echo "mysql 已经停止" else echo "mysql未启动" fi }

restart(){ stop start } if [ "$arg" = "stop" -o "$arg" = "start" -o "$arg" = "restart" ] then $arg else echo "请输入 start|stop|restart" fi

备份数据库的脚本
day=`date +%Y%m%d`
file_name="/tmp/${day}_all_data.sql"
mysqldump -uroot -p123456 -A > $file_name
echo "mysql 备份完成!"

 

 

标签:Shell,name,expr,age,echo,fi,class
来源: https://www.cnblogs.com/huyuemei/p/14955724.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有