shell编程基础

本文介绍了 Linux Shell 编程的基础知识,包括 Shell 的种类、脚本格式、变量类型及管理、流程控制结构、函数定义及特殊字符的使用等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



2016/10/13
Linux shell编程
1、shell本身是c语言编写的程序;是用户与Linux操作系统沟通的桥梁;
2、Linux shell种类:
 (1)Bourne shell(/usr/bin/sh或者/bin/sh);
 (2)Bourne Again Shell(/bin/bash);
 (3)C Shell(/usr/bin/csh);
 (4)K shell(/usr/bin/ksh);
 (5)shell for root(/sbin/sh);
3、shell脚本格式:
 #!/bin/sh // #!告诉系统其后路径指定程序既是解释此脚本文件的shell程序;
 #comments  //#开头表示注释
 Your commands go here
 
 脚本文件其后缀为sh表明是一个bash脚本文件;执行脚本的时候,先将脚本文件的属性改为可执行;
  chmod +x filename.sh //修改属性
  ./filename.sh //执行
4、变量(变量赋值时不要留空格)
 (1)本地变量:作用域为整个bash进程可以使用;
 (2)环境变量:一般指在操作系统中用来指定操作系统运行环境的一些参数,作用域为当前shell进程及其子进程,不会影响父进程;
   设置环境变量的方法:
    1)etho:显示指定环境变量;
    2)export:设置新的环境变量;
    3)env:显示所有环境变量;
    4)set:显示所有本地定义的shell变量;
    5)unset:清除环境变量;
 (3)局部变量:作用域为当前代码段;
 (4)位置变量:$1,$2,....
 (5)特殊变量(内置):
   $?:上一个命令执行状态的返回值;
   $#:获取当前shell命令行中参数的总个数;
   $*:获取当前shell的所有参数;
   $@:程序的所有参数“$1”“$2”“$3”“...”,不受IFS控制;
   $0:获取当前执行的shell脚本的文件名;
   $n:获取当前执行的shell脚本的第n个参数值,n=1..9;
   $$:获取当前shell的进程号;
   $!:执行上一个指令的PID;
5、shell流程控制
 (1)分支结构:test命令
   test expression 或者 [ expression ](必须留有空格)
 (2)if语句:
  1)方式1:if结构
   if [ expression ]
   then [EXPRESSION]
   fi
   
   
  2)方式2:if/else结构
   if [ expression ]
   then [EXPRESSION]
   else [EXPRESSION]
   fi
   
  3)方式3:if/elif/else结构
   if [ expression ]
   then [EXPRESSION]
   elif then [EXPRESSION]
   elif then [EXPRESSION]
   ...
   else then [EXPRESSION]
   fi
 (3)case语句
  case word in
   condition1) [EXPRESSION]
   ;;
   condition2) [EXPRESSION]
   ;;
   ...
   *) [EXPRESSION]
   ;;
  esac
 (4)循环结构
  1)for循环
  for NAME in [ LIST ];
  do [expression];
  done
  
  2)while语句和until语句
  //while
  while CONTROL-COMMAND;
   do [EXPRESSIONS]
  done
  //until
  until TEST-COMMAND;
   do [EXPRESSIONS]
  done
  
  注:break:在正常结束之前退出当前循环;
    continue:不执行本次循环,直接跳到下次循环;
    exit:终止脚本程序并返回值。


6、shell函数
(1)函数声明:
  //方法一
  function FUNCTION_NAME{
   [EXPRESSIONS]
  }
  
  //方法二
  FUNCTION_NAME (){
   [EXPRESSIONS]
  }
  
7、特殊字符
$:变量替换
双引号:除$、倒引号(`)、反斜线(\)保留特殊功能,其他字符均为普通字符;
单引号('):都为普通字符
倒引号(`):由倒引号括起来的字符串被shell解释为命令行,在执行时,shell会先执行该命令,并以它的标准输出结果取代整个倒引号部分;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值