linuxshell脚本常⽤命令
1、脚本⽂件内容的第⼀⾏必须要有下⾯的内容
#!/bin/bash
其作⽤是表明脚本是在什么shell下⾯运⾏的,如上是在bash中运⾏
2、变量⽆需定义,但需要注意写法
build_dir ="download"
这样写的话将会出现以下报错
build_dir: 未到命令
正确写法应是(不留空格)
build_dir="download"
3、变量值的引⽤(变量名前加$)
build_dir="download"
echo build_dir //输出变量名 build_dir
echo$build_dir //输出变量的值 download
4、判断⽬录是否存在与创建
build_dir="download" //定义⽬录名称
if[! -d "$build_dir"]; //-d判断⽬录是否不存在
then //不存在则
sudo mkdir$build_dir //创建名为download的⽬录
fi //if语句结束标志
5、判断⽬录是否存在与递归创建
build_dir="download/build/make" //定义⽬录名称
if[! -d "$build_dir"]; //-d判断⽬录是否不存在
then //不存在则
sudo mkdir -vp $build_dir //递归创建名为download/build/make的所有⽬录
fi //if语句结束标志
download/build/make嵌套了三层⽬录,判断⽬录是否存在时会有⼏种情况:
①download⽬录不存在;
②download⽬录存在,build⽬录不存在;
③download/build⽬录都存在,make⽬录不存在;
④download/build/make都存在;
⽽情况①②③均判断为⽬录不存在,进⽽递归创建不存在的⽬录。
6、输出字符串字体颜⾊的设置
echo -e "\033[31m Hello Word! \033[0m"
必须使⽤到echo命令,且调⽤-e参数,⼀头“\033[31m”,⼀尾“\033[0m”,参数控制输出字体的颜⾊。
7、判断脚本运⾏时传参个数
if[ $# -ne 2 ]; //参数个数不等于2
then
exit 1
fi
8、字符串的整段输出
cat<< EOM //开始标志
>>>>>>####
Module
>>>>>>####
You can download a Tool,a Bin or a Lib:
1.Download Tool
2.Download Bin
3.Download Lib
EOM //结束标志
9、读取输⼊参数值
read reply //读取回来的值赋给reply
case$reply in
'q'|'Q') //reply的值为'q'/'Q',终⽌脚本运⾏
exit 0;;
1) //reply的值为 1
echo -e "\033[32m Existing All Tool Files \033[0m"
break;;
2) //reply的值为 2
echo -e "\033[32m Existing All Bin Files \033[0m"
break;;
3) //reply的值为 3
echo -e "\033[32m Existing All Lib Files \033[0m"
break;;
esac //case语句结束标志
10、循环语句的使⽤
while true;do //循环语句的开始标志
//循环体
done //循环语句结束标志
11、判断传参是否存在
linux循环执行命令脚本if[ -z "$1"]; //-z判断第⼀个参数是否存在
then //不存在
path="tool" //固定变量值
else //存在
path=$1 //变量值为输⼊参数的值
fi //if语句结束标志
12、将⽬录下的⽂件名称以列形式列举出来
ls /home/jiajia|sort //格式ls ⽬录路径|sort
通常⽤于for循环,遍历所有⽬录⽂件
i=1 //初始化变量为1
for board in`ls $dir_path/$path|sort`;do //for循环开始,遍历⽬录下所有⽬录⽂件
name=`cat $dir_path/$path/$board/name` //遍历到⽬录下name⽂本的内容赋给变量name echo -e "\t$i$name" //在每⼀个name前插⼊序号(⾏号)
let i++ //序号++
done
如上,board的值是相当于图⽚中/home/ysw/download路径下的⽬录⽂件名,分别是asd1、boot、libev、rootfs、SDL(每个⽬录下都有⼀个name⽂本),for循环的第⼀次board的值为asd1,第⼆次board的值为boot,如此类推,每⼀次循环都会输出name⽂本的内容。
13、通过⾏号返回对应⾏的⽬录⽂件名称
downfile=`ls $dir_path/$path |sed -n "${num}p"`
num的值即是⾏号,返回来的⽬录⽂件名称赋给downfile。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
linuxshell编程案例
« 上一篇
centos shell写法
下一篇 »
发表评论