首页 > 系统服务 > 详细

shell基础命令学习-感谢菜鸟教程

时间:2019-08-27 18:39:40      阅读:73      评论:0      收藏:0      [点我收藏+]

#!/bin/bash
#author:byc

####echo后的引号可加可不加,单引号内的变量引用需要再加一层单引号#####
echo "this is a test"

#####$0当前执行程序,$1输入的第一个参数
#echo $0
#echo "your number is $1"

####数组应用,${#数组名[@or*]}显示数组中的元素数量###
#num_array=(1 2 3 4 5)
#echo ${num_array[1]}
#num_array[1] = b
#echo ${num_array[1]}
#echo ${#num_array[@]}

####echo -e开启转义 \c不换行 \n换行####
:<<!
echo -e "your loginid:\c"
read loginid
echo -e "your passwd:\c"
read passwd
echo -e "your loginid is ${loginid} \n your passwd is $passwd"
#echo "your passwd is $passwd"
!

####显示命令输出结果
#echo `date`

####printf需在末尾手动添加换行\n,%s(%c%d%f)格式,-有左对齐,无右对齐,printf转义字符
#printf "%-10s %-8s %-4.2f\n" 你好 中国 666.66666

####test用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试####
####数值 -eq等于则为真,-ne不等于则为真,-gt大于则为真,-ge大于等于,-lt小于,-le小于等于####
:<<!
num1=100
num2=200
if test $[num1] -eq $[num2]
then
echo "两个数相等"
else
echo "两个数不相等"
fi
result=$[num1+num2]
echo "result为:$result"
!

####test字符串,=,!=,-z字符串长度为0则为真,-n不为0为真####
:<<!
num1=add
num2=abb
if test $num1 = $num2
then
echo "两个数相等"
else
echo "两个字符串不相等"
fi
!

#-------------------------------------------------------------------------------------------
#文件测试,-e存在,-r存在且可读,-w可写,-x可执行,-s存在且至少有一个字符,-d存在且为目录,
#-f存在且为普通文件则为真,-c文件存在且为字符型特殊文件,-b文件存在且为块特殊文件
#-------------------------------------------------------------------------------------------
:<<!
cd /home
if test -d ./byc/byc.sh
then
echo "文件存在且为目录"
else
echo "文件不存在或不为目录文件"
fi
!

#-----------------------------shell流程控制------------------------------------------------
####if语句
#cd /home/byc/
#count=`ls -l | grep -c sh`
#if test $count -eq 0;
#then
# echo "文件中没有sh文件"
#else
# echo "文件中有$count个文件"
#fi
#实测if语句写成一行时[ 内容 ]内部左右需要有空格,不然会报错
#if [ $(ls -l | grep -c sh) -eq 2 ];then echo "有!";fi

#####for语句
#for i in 1 2 3 4 5
#do
#echo $i
#done

#####while语句
#echo "按ctrl+D结束输入"
#echo -e "请输入密码:\c"
#while read key_enter
#do
#注意此处若写成[ $key_enter="byc" ],执行是若输入为空,会报错[: =: unary operator expected;所以需要写成以下格式,规避错误
#if [ ${key_enter}x = "bycx" ];其中的 = 两端需要有空格,否则会当成赋值
:<<!
if [ ${key_enter}x = "bycx" ];
then
echo $key_enter
echo "密码正确"
else
echo "密码错误,请重新输入"
echo -e "请输入密码:\c"
fi
done
!

####until 循环;condition,返回为false继续执行,返回true,停止循环
#until condition
#do
# command
#done

###-----------------case--------------------------######
:<<!
echo ‘输入 1 到 4 之间的数字:‘
echo ‘你输入的数字为:‘
read aNum
case $aNum in
1) echo ‘你选择了 1‘
;;
2) echo ‘你选择了 2‘
;;
3) echo ‘你选择了 3‘
;;
4) echo ‘你选择了 4‘
;;
*) echo ‘你没有输入 1 到 4 之间的数字‘
;;
esac
!

#------------------------break-----------------------------
:<<!
while true
do
echo -e "请输入密码:\c"
read input_num
if [ ${input_num}x = "bycx" ];
then
num=1
else
num=2
fi
case $num in
1) echo "你输入了正确密码"
break
;;
2) echo "密码错误,请继续输入"
;;
esac
done
!

#-----------------------continue-------------------------
#用continue实现只输出奇数
a=0
while true
do
#let命令
let "a++"
num=`expr $a % 2`
if [ $num = 0 ];
then
continue
fi
echo $a
sleep 2
done

shell基础命令学习-感谢菜鸟教程

原文:https://www.cnblogs.com/byc-blog/p/11419852.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!