SHELL编程基础

SHELL脚本


第一行写#!/bin/bash表示的是执行脚本所用的shell的版本,执行时默认调用子进程来完成。
 


强弱引用


1.echo "  " ##弱引用
2.echo '  ' ##强引用
3.echo -e "\n" ##使的\n有换行的能力
4.echo \# \* \$HOME ##\为转义字符(可以转义变量)
弱引用不会使变量(包括$*和``)失效
而强引用则会使变量失效


变量的使用


a=${HOME} ##{}:标出一个变量与其他字段分开也可一修改变量内容
b=$(date +%H-%M-%S) ##():先让()内的命令执行,执行完后在将结果赋值(产生的结果为多行使,b会变成数组)


数值的处理

 

  • $[5-6]
  • ((i+=j)) ##用于写等式很方便
  • ((min=i/60)) ##min=$(($i/60))也行

参数的应用

 

  • $0 $1 $2 $3 .. ##脚本后面跟的参数
  • $# ## 参数的个数
  • $@ ##所有参数的内容
  • $* ##所有参数的内容

 


交互式输入

 

  • read -p"..." NAME##输入内容至NAME,...为提示
  • read -s NAME ##用于密码输入



赋值运算符

 

  • =,+=,-=,++,--(+,-,*,/,%)



逻辑运算符

  • eq(==,=),ne(!=),!,gt,ge,lt,le ##相等,不等,取反,大于,大于等于,小于,小于等于



脚本语法


1.for in系列

for num in {1..10}       ##num取值1-10
do
echo $num
done

for num in $((seq 1 10)) ##num取值1-10
do
echo $num
done


2.经典for循环

for ((i=0;i<10;i++)) ##C语言for循环类型
do
echo $i
done


3. while循环

while [ -z "$?" ] 
do

done

4. if

if [ "$1" == "1" ]; then ##if语句
echo hello
elif [ "$1" == "2" ];then
echo world
else
echo hello world
fi

5.case

case $1 in ##case开关语句
hello)
echo world
;;
world)
echo hello
;;
*)
echo ERROR
;;
esac



环境变量


1.用户的环境变量
vim ~/.bash_profile ##将a升级为这个用户的环境变量

export a=1

2.系统级环境变量(两种都可以)

  • vim /etc/profile ##将a升级为系统环境变量
export a=1
  • vim /etc/bashrc
export a=1


自动应答脚本


yum install expect  ##安装自动应答器

#!/usr/bin/expect ##需要将文件加入执行权限
set USER [ lindex $argv 0 ]
set PASS [ lindex $argv 1 ]
set IP [ lindex $argv 2 ]

spawn ./ssh.sh ##该脚本会自动回答本目录下的ssh.sh(要有执行权限)

expect {
"Are you sure"{ send "yes\r"; exp_continue }
"username" { send "$USER\r"; exp_continue }
"password" { send "$PASS\r"; exp_continue }
"ipaddr" { send "$IP\r"; exp_continue }
}
interact ##回答完后停留在里面


 

小技巧:

  • cat filename|wc -l ##查看filename的行数
  • sed -n 5p filename ##查看filename的第五行
  • echo $passwd |passwd --stdin user1 ##将$passwd作为user1的密码
  • ifconfig|sed -n 2p |cut -d ' ' -f 10 ##IP地址



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值