>只收集前面命令的正确输出
2>只收集前面命令的错误输出
&>收集前面命令的正确和错误输出 (垃圾输出常用)
&>/dev/null输出到黑洞文件内
新建脚本头部必须带 #!/bin/bash声明
1.创建用户设置密码
useradd 用户名 &>/dev/null
echo 密码 | passwd --stdin 用户名 &>/dev/null
2.为脚本加权限
chmod +x /root/user.sh
3.read 可产生交互,将键盘输入内容赋值给变量
read -p "请输入创建用户名" 变量
4.如果变量已经存在,那就相当于给变量重新赋值
5.变量不能以数字开头,也不要用关键字和特殊字符
6.取变量值 一般用 :$变量
7.查看变量 echo $变量
8.$()将命令结果作为参数
9.-d 查目录是否存在
10.-f 查文件是否存在
11. 整数对比
-gt 大于;-lt小于 ; -eq 等于 ; -ne 不等于; -ge大于等于 ;-le小于等于
12. 字符串对比
== 相同 !=不同
13.if 格式
#!/bin/bash
if [条件测试] ; then
命令1序列
else
命令2序列
fi
if是如果,then是那么,else否则,fi结尾
解释就是 如果条件测试成立,那么执行命令1,否则执行命令2,fi结束
14. for循环语句 (通常用在可以数的清的循环内)
格式
for i in
do
done
例子: 1到50的数字相加的结果是多少
#1.列表for循环{}中可以是一个list
sum=0
for i in {1..50}
do #循环开始
let "sum+=i" #(sum=sum+i)
done #循环结束
echo $sum
do #循环开始
let "sum+=i" #(sum=sum+i)
done #循环结束
echo $sum
#2.利用seq外设命令
sum1=0
for i in $( seq 1 50 ) #也可写作`seq 1 50`
do
let "sum1+=i"
done
echo $sum1
sum1=0
for i in $( seq 1 50 ) #也可写作`seq 1 50`
do
let "sum1+=i"
done
echo $sum1
#3.跟其他语言相似的for循环
sum2=0
for (( i=1;i<=50;i++ )) # 认识C语言
do
let "sum2+=i"
done
echo $sum2
sum2=0
for (( i=1;i<=50;i++ )) # 认识C语言
do
let "sum2+=i"
done
echo $sum2
15. while : (无限循环) 数不清的循环时用while
格式
while
do
done