学习shell基础命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习shell基础命令相关的知识,希望对你有一定的参考价值。
学习shell基础命令
‘‘
单引里面写什么就是什么
""
双引里面写什么就是什么(如果有变量会把变量的量显示出来)
``
与下面的$()一样,优先执行完得出结果
$()
测试
[] 中括号里面都要有空格
-f 测试是否为文件
例: [ -f /etc/passwd ] && echo ‘真的是个文件‘ //成功的
[ -f /home ] && echo ‘真的是个文件‘ // 失败的
-d 测试是否为目录
例: [ -d /etc/passwd ] && echo ‘真的是个文件夹‘ // 失败的
[ -d /home] && echo ‘真的是个文件夹‘ //成功的
-e 测试是否存在
例: [ -e /mnt/cdrom ] && echo ‘是的存在‘
&& 逻辑与( 前面如果能执行成功则后面接着执行 )
|| 逻辑或( 前面如果能执行成功则后面的不执行,前面执行不成功则后面接着执行 )
-r 测试有读的权限吗
[ -r /etc/passwd ] && echo ‘是的有读取的权限‘
-w 测试有写的权限吗
-x 测试有执行的权限吗
比对测试
-eq 测试是否为相等
例:
a=100
b=98
[ $a -eq $b ] && echo ‘是的它们是相等的‘
b=100
[ $a -eq $b ] && echo ‘是的它们是相等的‘
-ne 测试是否为不相等
-gt 测试是否为大于
-lt 测试是否为小于
判断if
单分支的if
if [ 条件测试 ]
then
do
fi
例子:
cat > for-free.sh <<end
#!/bin/bash
a=$(free -m |grep -i mem |awk ‘{print $4}‘)
if [ $a -gt 100 ]
then
echo "现在可用内存为$a ,够你用"
fi
end
chmod +x for-free.sh
./for-free.sh
双分支的if
if [ 条件测试 ]
then
do
else
do
fi
例子:
cat >>for-5.sh <<end
a=$(free -m |grep -i mem |awk ‘{print $4}‘)
if [ $a -gt 100 ]
then
echo "现在可用内存为$a ,够你用"
else
echo "现在可用内存为$a ,不够你用"
fi
end
chmod +x for-5.sh
./for-5.sh
cat >for-sdd.sh <<end
#!/bin/bash
echo "这是一个判断/dev/sdd磁盘使用量的脚本"
pan=$(df -Th |grep /dev/sdd |awk ‘{print $5}‘ |cut -d G -f 1 )
if [ $a -gt 7 ]
then
echo “现在的/dev/sdd使用量为 $pan G,说明磁盘还够用”
else
echo “现在的/dev/sdd使用量为 $panG,说明磁盘不够用”
fi
end
chmod +x for-sdd.sh
./for-sdd.sh
多分支的if
if [ 条件测试 ]
then
do
elif [ 条件测试 ]
do
elif [ 条件测试 ]
do
elif [ 条件测试 ]
do
elif [ 条件测试 ]
do
elif [ 条件测试 ]
do
elif [ 条件测试 ]
do
else
do
fi
例:
cat >for-number.sh <<end
#!/bin/bash
echo ‘这是一个查看成绩等级的脚本‘
read -p ‘请输入你所得的成绩:‘ int
if [ $int -ge 90 -a $int -le 100 ]
then
echo ‘你的成绩等级为优等生‘
elif [ $int -ge 80 -a $int -le 89 ]
then
echo ‘你的成绩等级为次优等生‘
elif [ $int -ge 70 -a $int -le 79 ]
then
echo ‘你的成绩等级良等生‘
elif [ $int -ge 60 -a $int -le 69 ]
then
echo ‘你的成绩等级为及格生‘
else
echo ‘你的成绩系统判定为补考‘
fi
end
chmod +x for-number.sh
./for-number.sh
以上是关于学习shell基础命令的主要内容,如果未能解决你的问题,请参考以下文章
Linux学习(二十一)Shell基础认识shell命令历史命令补全别名通配符管道符与前后台控制