shell编程总结及感悟

1、shell的系统变量

$0   当前程序的名称,实际上是一个内部参数,它必须有! 
$n   $1 表示第一个参数,$2 表示第二个参数,以此类推 .
$#   命令行参数的个数,即传递给程序的总的参数数目
$? 上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
$*   以“参数1 参数2 ... ” 形式保存所有参数,即传递给程序的所有参数组成的字符串。 
$@  以"参数1" "参数2" ... 形式保存所有参数 
$$   本程序的(进程ID号)PID 
$!   上一个命令的PID

2、shell 变量

1.变量是表示计算机内存中保存的一种数据需要占的一个位置或一组位置的标识。变量名可以由数字字符下划线组成,但是变量名只能由字符下划线开头,而不能是数字

2. shell变量种类:
系统变量:主要在判断命令参数和命令执行后的返回值时用到。
环境变量:在程序运行时需要设置的变量。
用户变量:局部变量由用户定义,用户可以定义、修改或删除他们。

 3.变量赋值:格式 变量名=字符串
       myfile=/home/xxxy/test1.c
       注意:
      赋值号两边不能有空格 在赋给变量的值中含有空格、制表符或换行符,应该用双引号把这个字符串括起来。

4.访问shell变量的值,必须在变量名前面加$符号。例如:echo  $myfile。

5.删除用户变量:

person=null ; echo $person 输出:null ; 删除变量:unset person(清除变量);

3、一般通配符

 星号(*)功能:匹配任意字符的出现。

 问号(?) 功能:匹配任意一个字符。

 方括号([ ])功能:匹配括号内所限定的任何一个字符。 如: f[abcd]匹配fa、fb、fc、fd;

 双引号”功能:双引号括起来的字符作为普通字符对待。

 $ 、 倒引号` 、反斜线 \ 这三个仍保留其特殊功能。

 $表示变量替换,用预先指定的变量值代替$和变量。

 `倒引号表示命令替换。

 \反斜线在后面字符是$、`、”、\、换行符之一时,表示转义字符,即不对后面字符特殊处理。

  单引号’功能:单引号括起来的字符都作为普通字符。单引号保留空白符 用反斜杠消除单引号的特殊含义。

 注释(#)功能:shell将#看作注释符号,忽略#后的字符。

4、个人感悟

  shell命令很神奇,通过一系列命令就可以搞定文件的操作,在这些命令之后再加一些字母,便可以做一些更加详细的操作

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
shell脚本成分 开头和注释: shell脚本的开头,用来解释shell程序,包括:#!/bin/bash、#!/bin/csh、#!/bin/tcsh、#!/bin/pdksh,一般用#!/bin/bash。。 shell脚本中的注释,以#开头的句子表示注释。 变量: 变量的赋值和引用 在shell编程中变量没有类型,简称弱类型编程语言,不需要声明,在引用这个变量时会创建它(在变量名前加$符号引用变量的值)。在定义变量时,若String中包含空格、制表符、换行符,需用单(双)引号,双引号内允许变量替换,而单引号内就不可以。 shell变量的作用域 可以用export内置命令将局部变量设置为全局变量。 位置变量 用于向shell脚本传递信息。参数相关数目传入脚本,此数目任意多,但只有前9个可以被访问,使用shift命令可以改变限制。其中,$0:脚本名字。 特定变量参数 $#:传递到脚本的参数个数;$*:以一个单字符串显示所有项脚本传递的参数。与位置变量不通,此选项参数可超过9个;$$:脚本运行的当前进程ID号;&!:后台运行的最后一个进程的进程ID号;$@:与$#相同,但是使用时加引号,并在引号中返回每个参数;$-:显示shell使用的当前选项,与set命令功能相同;$?:显示最后命令的退出状态(0表示没有错误,其他任何值表明有错误。)。 变量的规则 1.变量与变量内容以一个等号『=』来连结,如下所示『myname=VBird』 2.等号两边不能直接接空格符,如下所示为错误:『myname = VBird』或『myname=VBird Tsai』 3.变量名称只能是英文字母与数字,但是开头字符不能是数字,如下为错误:『2myname=VBird』 "4.变量内容若有空格符可使用双引号『""』或单引号『'』将变量内容结合起来,但 双引号内的特殊字符如 $ 等,可以保有原本的特性,如下所示:『var=""lang is $LANG""』则『echo $var』可得『lang is en_US』 单引号内的特殊字符则仅为一般字符 (纯文本),如下所示:『var='lang is $LANG'』则『echo $var』可得『lang is $LANG』" 5.可用跳脱字符『 \ 』将特殊符号(如 [Enter], $, \, 空格符, '等)变成一般字符; "6.在一串命令中,还需要藉由其他的命令提供的信息,可以使用反单引号『`命令`』或 『$(命令)』 特别注意:那个 ` 是键盘上方的数字键 1 左边那个按键,而不是单引号! 例如想要取得核心版本的配置:『version=$(uname -r)』再『echo $version』可得『2.6.18-128.el5』" "7.若该变量为扩增变量内容时,则可用 ""$变量名称"" 或 ${变量} 累加内容,如下所示: 『PATH=""$PATH"":/home/bin』" 8.若该变量需要在其他子程序运行,则需要以 export 来使变量变成环境变量:『export PATH』 9.通常大写字符为系统默认变量,自行配置变量可以使用小写字符,方便判断 (纯粹依照使用者兴趣与嗜好) ; 10.取消变量的方法为使用 unset :『unset 变量名称』例如取消 myname 的配置:『unset myname』

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值