- shell中默认为字符串,当有空格时可以加入引号
- 可将一个变量的值赋值给另一个变量
- shell中单引号和双引号的区别
- 单引号是强引用
- 双引号是弱引用
- 命令和参数之间需要加空格
- bash -vx 脚本 #使用调式的方式执行
- case可以多个匹配
case "$ip" in
y|Y|yes|YES)
echo "多模式匹配"
;;
esac
- : 表示什么都不做
- shell中捕捉键盘的信号
trap “” HUP INT OUIT TSTP - echo 默认输出换行符 echo -en 取消换行
- 用户在登录的过程中会执行一些文件,如果想在用户登录之后就做一些操作,可以对这些文件进行修改 【bashrc 】
- tr的使用 https://blog.csdn.net/baidu_36649389/article/details/75647190
- for循环默认按空格或tab进行分割的
- bash -n 脚本名.sh 检查脚本语法
- bash -vx 脚本名.sh 调试模式运行脚本
- 循环次数固定使用for [for是以空格作为分隔符]
- 文件逐行处理使用while 【while 是以行作为分割符】
- 循环次数不固定使用while或until
- 执行代码}& 放到后台执行
- echo /proc/$$/fd/6 查看当前进程下的文件句柄
- *shell中的執行python程序
/usr/bin/python <<-EOF #注意行杠 - 有-的时候,结尾的EOF不顶格也不会报错
python逻辑代码
EOF - . bash.sh 表示在当前shell中执行,执行之后会进入home目录;source 执行也是同样的
$0 脚本名
$* 所有的参数
$@ 所有的参数
$# 参数的个数
$$ 当前进程的PID
$! 上一个后台进程的PID
- case语法
case "$ip" in
7.3)
;;
8.2)
;;
esac
- echo 本身就是一个回车符
- 利用命名管道 和 文件描述符 实现并发的控制
- expect 位置变量参数 [lindex $argv 0] 0表示第一个位置参数
- expect 结束的几种方式,保持连接的方式
- 一个脚本中可以有多个expect
- 数组作为函数的参数
- ssh-keygen -P “” -f ~/.ssh/id_rsa 生成秘钥
- spawn ssh-copy-id $ip 推送公钥
- 关联数组在定义是必须先申明 declare -A 数组名
- 区分函数的参数和脚本的参数
- shell函数中return 只能返回数值,不能超过255,不能返回一个表达式
- array=()
- `` 反单引号的执行方式是在子shell中执行
- echo -n 表示不换行输出
- break 2 表示结束两层循环
- while循环对于空行很敏感,需要特殊处理
- shift 1 将参数向左移,挤掉一个,取得下一个参数