@helen-
2019-03-14T03:08:42.000000Z
字数 1588
阅读 913
研究生学习 Linux基础
是一种交互式的脚本程序设计语言
shell: 外壳 通过shell操作内核
shell的操作 :应用软件 shell命令
交互式 : 每次执行一个shell命令都能得到一个回复
静态(脚本)语言不需要编译 直接解释执行
默认shell解释器 bash
shell工作原理
shell脚本的执行方式
# !/bin/bash 使用bash解释器
单行注释
#
多行注释
:<< !
注释内容
!
$ { NAME } ss 变量名最好大写
- 如果不用source执行,使用可执行权限去执行 可以使用export 全局变量 子进程全都可访问 ,父进程无法访问
所有类型都是字符串类型
unset 撤销变量
在A脚本中执行b.sh: source /root/bin/b.sh
不加source 无法打印(父进程+子进程)数据没有共享
export :设置全局变量
反引号 ``
a = ls -l/root/bin` 可以运 行反引号里面的命令 同时把结果返回给变量
或者 a =$(ls -l/root/bin)
文件运算符 -d -f等
三元表达式 ( ) && echo yes || echo no
为真 yes 为假 no
2. 分支运算
if [] #前后要有空格thenechoelif[]thenechoelsefiwhiledodonecase $a instart)echo " ";;stop)echo " ";;*)echo " "esacfor 变量 in {1..50} # 从1-50dodonefor ((i=0;i<2;i++))dodone
mingxing=(1 2 3)echo ${mingxing[0]}echo ${mingxing[*]} #打印所有数组名echo ${mingxing[*]:2:3} #从第2个数组开始打印3个echo ${mingxing[*]:(-2)} #从倒数第二个开始打印所有数组echo ${!mingxing[@]} #打印有值下标echo${#mingxing[*]} #求数组实际长度mingxing+=(4) #追加
for ip in${IP[*]}doecho $ipdone
function myfunc(){}myfunc # 把函数当成命令来操作# 使用function定义 先定义再使用# 命名规范# shell函数本身不用声明传参,在使用直接传参 sh for.sh 1 2 3# 把函数当命令执行# 使用 $# 查看参数个数 使用$@接收所有参数内容 使用$?接收函数返回值