shell脚本

什么是shell?
命令解析器,将用户输入的指令转化为机器可运行程序

#!/bin/sh 或 #!/bin/bash 声明这是shell脚本,固定格式

重定向符
> 原内容被擦除
>> 原内容不被擦除,而是在后面添加


默认变量
$# 传入脚本命令行形参个数
$* 所有命令行的参数值,在各个参数值之间留有空格
$0 本身
$1 第一个参数
$2 第二个参数

if语句
if [ $# -ne 3 ]; then 如果不等于3

elif [ $# -eq 3 ]; then 如果等于3,可替换为else

fi

☆☆☆[]里面要有空格
for语句
for dir in $1 $2 $3
do
done

iffor.sh
#!/bin/bash
echo "hello world"
if [ $# -ne 3 ]; then
echo"Usage: $0 dirname1 dirname2 dirname3"
exit 1 ------------>便于定位程序出错位置
else
echo $1
echo $2
echo $3
echo $*
fi
for dir in $1 $2 $3
do
mkdir ${dir}
cd ${dir}
touch ${dir}.txt
echo "hello world" > ${dir}.txt
cd ..
done

orand.sh
#!/bin/bash
folder=/home
[ -r "$folder" ] && echo "can read name1 $folder"
[ -r "$folder" ] && echo "can read name2 $folder"
[ -f "$folder" ] || echo "this is not file3"
[ -f "$folder" ] || echo "this is not file4"
运行结果:
can read name1 /home
this is not file 4


与&&:若前面为真则后面运行
或||:若前面为真则后面不运行

case.sh
#!/bin/bash
export LC_ALL=C --------->①解决无法判断字母大小写的问题
read key
case ${key} in
[A-Z] ) echo "Uppercase Letter";;
[a-z] ) echo "Lowercase Letter";;
[0-9] ) echo "Nunber";;
* ) echo "Unknow";
esac


②判断条件改动
[A-Z]改为[[:upper:]]
[a-z]改为[[:lower:]]
问题原因:不同语系中编码的顺序不一样








  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值