第一行写#!/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 ##用于密码输入
=,+=,-=,++,--(+,-,*,/,%)
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 done2.经典for循环
for ((i=0;i<10;i++)) ##C语言for循环类型 do echo $i done3. while循环
while [ -z "$?" ] do done4. if
if [ "$1" == "1" ]; then ##if语句 echo hello elif [ "$1" == "2" ];then echo world else echo hello world fi5.case
case $1 in ##case开关语句 hello) echo world ;; world) echo hello ;; *) echo ERROR ;; esac1.用户的环境变量 vim ~/.bash_profile ##将a升级为这个用户的环境变量
export a=12.系统级环境变量(两种都可以)
vim /etc/profile ##将a升级为系统环境变量 export a=1 vim /etc/bashrc export a=1yum 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地址