Linux shell编程 bash

shell,应用程序,提供用户作为系统接口

命令
编程功能

软件编程:
编译类:源代码-->目标代码(编译),c,c++,JAVA
脚本类:源代码,(解释器,bash(编译的))  面向应用   perl 5.8(面向过程),python(面向对象),ruby(on rail),shell

shell,bsh(sh),bourn

Bill Joy,csh --> tcsh

Korn,ksh,GNU ksh

bourn again shell bash,GPL,

zshell 最新的,功能强大

切换shell后,要切换回来要用exit

cat:
-n 显示行号
-A,--show-all 显示特殊字符

   
变量:(容器)命名的内存空间 严格区分变量类型

bash 不会严格区分变量类型 脚本中任意变量类型都视为字符char
 本地变量 set
 环境变量 export 可被本shell,其它shell的进程应用
 位置参数变量
 特殊变量
 引用:取变量值,"".'',``
  "",弱引号
  '',强引用
  ``,命令引用 $()
 变量替换 弱引用中会发生,强引用中不会发生
  $变量名,${变量名}
 只有引用时才加$
 readonly 使一个变量变为常量
 HISTSIZE,HISTFILE,HISTFILESIZE,HISTCONTROL
 PS1;
 PS2;
 PS3;
 PS4;

 export中       
 DISPLAY HOME LANG LOGNAME LS_COLORE OLDPWD PWD

 $? 命令的执行状态值
 $$ 当前进程的进程号

 
 命令别名 只对当前shell有效:
 cd /etc/sysconfig/network-scripts
 alias cdnet='cd /etc/sysconfig/network-scripts'
 alias mntcd='mount /dev/cdrom /media/cdrom'
 alias 显示所有别名
 unalias 取消别名

编写脚本:
#!/bin/bash 定义解释器shell


Linux --> 继承了默认设置
/etc/profile,/etc/profile.d/*,/etc/bashrc
~/.bash_profile,~/.bashrc,~/.bash_history,~/.bash_logout(存放用户退出时做的动作)
交互式:
 profile  <- 环境变量的定义
非交互式:
 bashrc <- 别名等的定义

alias cdnet='cd /eetc/sys...'

source = . 配置文件后执行


shell 算术运算:
$((expression))
$[expression]
let

+,-,/*,/,%,++,--,+=

A=2
B=3
let A=$A+$B

选择分支,三类
if [];then
  ..
  ..
  ..
fi


if [];then
  ..
  ..
else
  ..
  ..
fi


if [];then
  ..
  ..
elif [];then
  ..
elif [];then
  ..
else
  ..
fi


嵌套

 

循环分支

while
for
until

for VAR in list;do
  ..
  ..
  ..
done

let SUM=0
for I in 1 2 3 4 5 6 7 8 9 10;do
  let SUM+=$I
done
echo $SUM


while [];do
  ...
done

let I=1
let SUM=0
while [ $I -le 100 ];do
  let SUM+=$I
  let I++
done

let I=2
let SUM=0
while [ $I -le 100 ];do
  let SUM+=$I
  let I+=2
done


while read LINE;do
   ...
done < /etc/issue

cat /etc/issue | while read LINE;do
  ...
done

 

until [];do
  ...
done

 

read 用来让系统跟用户交互

 

面向对象:
顺序
选择
循环


getopts


while getopts "ab" SWITCH(变量);do
 case $SWITCH in
  a) echo "-a option." ;;
  b) echo "-b option." ;;
        /?) echo "Unkown option." ;;
 esca
done

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值