shell的学习笔记:
1. 如何自定义变量?
- 定义一个name变量:
name="hahaha"
echo $name
- 重复定义变量:
aa=123
aa="$aa"456
echo= $aa \\变量可以重复定义,但是定义的最后一个就是最终结果
- 查看和删除变量:
set
unset
- 编写脚本
vim ping.sh
#!/bin/bash
ip=192.168.190.180
ping -c1 $ip &> /dev/null && echo "$ip" pass || echo "$ip"down
&& 前面的命名成功,执行后面的命令
| | 前面的命令失败,执行后面的命令
- read变量名
read 变量名
read -p "你的名字是什么:" name
2.注意事项3个引号:
" "这个是弱引,在里面的空格会视为符号
’ '这个是强引,在里面的全部都视为符号
` 这个是飘号,在里面的优先执行
3.变量运算:
- 方法一:expr
\* 乘 / 除 %取余
#!/bin/bash
read -p "第一门考多少?" number1
read -p "第二门考多少?" number2
echo -n "总成绩是多?"
expr "$number1" + "$number2"
- 方法二:¥(())
echo $(($number1+$number2))
sum=$((1+2));echo sum
3
;的含义是执行完前面的再执行后面的
- 方法三:let
let num=$number1+$number2 ; echo $num
let i++ ; echo $i
编写一个创建用户的脚本?
vim useradd.sh
#!/bin/bash
read -p "请告诉我你的名字" name
read -p "请告诉我你的d密码" passwd
useradd $name
echo "$passwd" | passwd --stdin $name &> /dev/null
echo "你的名字是"$name",你的密码是"$passwd""
自己试想一下如何一键配置yum仓库
shell的判断,if语句?
- 数值比较
[整数1 比较符 整数2]
-gt大于 -lt小于 -eq等于
-ne不等于 -ge大于等于 -le小于等于
测试长度:echo ${#aaa}
测试语法 [ ${#aaa} -gt 3 ] ; echo $?
- if语句
#!/bin/bash
read -p "请输入你的密码" ps
if [ ${#ps} -lt 7 ]
then
echo "你的密码太短了"
else
echo "你的密码真长"
fi
小技巧用VIM编辑的时候查看错没错就看有没有黄色字体就知道了
- 文件测试
-e FILE - 如果文件存在并且是文件,则为True,而不考虑类型(节点、目录、套接字等)。
-f仅仅用来检查文件是常规文件(不是目录或设备)
-d允许你测试一个文件是否时目录
#!/bin/bash
read -p "请输入你要备份的文件目录" dir
if [ -d /${dir} ]
then
echo "文件已经存在"
else
echo "文件不存在,正在创建文件"
touch ${dir}
fi
字符串比较
=,等于
!=, 不等于
-n判断字符串长度不为0