Shell脚本编程学习笔记

1、shell变量是弱变量,即该变量不需要定义就能使用。
      a是变量
      $a是变量的值
2、位置参数变量
      位置参数:$0表示命令本身   ; $1表示第一个参数; $2表示第二个参数;
      以此类推到$9,共十个。
3、进程变量
      $#  表示传递给shiell命令文件的参数个数(不包含命令文件本身) 
                     如:$ test a b c 
                            $ echo $#
                            $ 3
      $?   表示执行命令的退出状态,其值为0,1等。正常退出为0,异常退出为非0、
      $$   变量的值为当前进程的进程号
      $*    该变量的值为命令行的所有变元
      $!    在后台运行的最后一个进程的进程号
      $-     变量的值为shell中当前设置的个执行标志之名称组成的串

4、标准的shell变量
ENV 保存用来初启新shell的文件名
FCEDIT保存fc命令的默认的编辑器名字
HOME保存当前用户的主目录
LINENO保存当前脚本或函数的当前序列号,在脚本和函数的上下文以外其值没有意义
MAIL保存shell查看新邮件的文件名
MAILCHECK保存两次信箱查看之间的秒数
OLDPWD保存先前由cd命令设置的工作目录
OPTARG保存getopts命令最近处理的可选参数的值
PATH保存命令搜索路径
PPID父进程的ID号
PS1Shell的主提示符
PS2Shell的次提示符
PS3保存select命令的提示符
PWD当前工作目录
RANDOM每次它使用时都保存一个随机数
SECONDS保存当前shell实例被启动以来经历的时间,如给SECONDS赋值,则SECONDS为赋的值家经历的时间
TMOUT显示主提示符之后等待输入的秒数,如在指定时间没输入则shell终止

5、变量的作用空间
     在shell脚本中定义的变量尽在脚本中有效,但使用如下的一些命令可以改变其作用域或属性:
  • export [option] [name[=value]]
     --                表示选项结束,所有后续参数都是实参
     -f               表明在“名-值”对中的名字是函数名
     -n                把全局变量转换成局部变量,即命名的变量不在传给子shell
     -p                显示全局变量列表(全局变量,即在子shell中也有效的变量)
    缺省          把变量定义为全局变量

  • let expression
        用于创建不能传给子shell的变量,该命令仅在过程内部有效:如local后不跟参数,那么在当前已定义的局部变量列表就送往标准输出显示
  • readonly [option][name[=value]]
        用于显示或则设置制度变量和函数,如readonly后部分参数,则在案标准输出上显示已定义的只读变量和函数
        --   表明选项结束,所有后续参数都是实参
        --   创建只读函数
  • unset [option] name[name...]   
        用于取消变量和函数的定义(即删除变量),但PATH、PPID、PSI、PS2、UID、EUID等变量不能删除

6、引号规则
      用单引号(‘)把该字符串引起来,shell度单引号中的任何字符不做任何解释,而只是简单保持原状。
      $TestString='$PATH*\\[a-x]? 2>&1'
      $echo $TestString
      $$PATH *\\[a-x]? 2>&1
  
  用双引号吧字符串引起来,则$、\、`、"四个字符有特殊含义,要对齐进行特殊解释:
     $     用气候的变量的值来代替这个变量和$
     \      告诉shell不要对它后面的那个字符进行特殊处理,按本意来解释 
  `      告诉shell用两个反引号之间的命令的结果代替那个名伶串(包括另个反引号)
     "      会同前一个"匹配





 
  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值