shell学习笔记四

编程入门 行业动态 更新时间:2024-10-06 23:26:41

shell<a href=https://www.elefans.com/category/jswz/34/1770117.html style=学习笔记四"/>

shell学习笔记四

变量、判断、重复动作
export , readonly
    语法:export name[=word]...
              export -p     显示当前环境
              readonly name[=word]
              readonly -p
    用途:export用于修改或者打印环境变量,readonly则使得变量不得修改
    export可以将新的变量添加到环境中: PATH=$PATH:/usr/local/bin
                                                           export PATH
    如果要从程序中的环境中删除变量,则要使用env命令,env也可临时改变环境变量的值:
    env -i PATH=$PATH HOME=$HOME LC_ALL=C awk '...' file1 file2   -i的意思是初始化环境变量也就是丢弃任何继承值,仅传递命令行上指定的变量给程序使用
    unset命令从执行中的shell中删除变量与函数,默认情况下,它会解除变量设置,也可以加上-v来完成:
    unset full_name    删除full_name变量
    unset -v first middle last    删除其他变量
    unset -f function_name    删除function_name函数
env语法:  env [-i] [var=value ...] [command_name [arguments ...]]
    用途:当command_name被env执行时,可针对command_name继承而来的环境有更细致的控制
    -i  忽略继承的环境,仅仅使用命令行上所给定的变量与值
unset语法:unset [-v] variable ...    删除指定变量
    unset -f function_name ...    删除指定函数
位置参数:指的是shell脚本的命令行参数,同时也表示在shell函数内的函数参数。
特殊“变量”提供对传递的参数的总数的访问,以及一次对所有参数的访问
    $#:提供传递到shell的脚本或者函数的参数的总数,当你是为了处理选项和参数而建立循环时,它会很有用
    $*, $@:一次表示所有的命令行参数,这两个参数可用来把命令行参数传递给脚本或函数所执行的程序
    "$*":将所有的命令行参数视为单个字符串
    "$@":将所有的命令行参数视为单独的个体,也就是单独的字符串
shift命令用来截去(lops off)来自列表的参数,由左开始,一旦执行shift,$1的初始值会永远消失,取而代之的是$2的旧值。$2的值变成$3的旧值,以此类推。单纯地使用shift等同于 shift 1.
POSIX内置的shell变量
    #    目前进程的参数个数
    @   传递给当前进程的命令行参数
    *     当前进程的命令行参数
    -     在引用时给予shell的选项
    ?   前一命令的退出状态
    $    shell进程的进程编号
    0    shell程序的名称
    !   最近一个后台命令的进程编号
    ENV  一旦引用,则仅用于交互式shell中,$ENV是可展开的参数
    HOME 根目录
    IFS   内部的字段分隔器
    LANG 当前locale的默认值
    LC_ALL   当前locale的名称
    LC_COLLATE   用来排序字符的当前locale名称
    LC_CTYPE   在模式匹配期间,用来确定字符类别的当前locale的名称
    LC_MESSAGES    输出信息的当前语言的名称
    LINENO   刚执行过的行在脚本或函数内的行编号
    NLSPATH 在$LC_MESSAGES所给定的信息语言里,信息目录的位置
    PATH   命令的查找路径
    PPID    父进程的进程编号
    PS1   主要的命令提示字符串,默认为$
    PS2   行继续的提示字符串
    PS4    以set -x设置的执行跟踪的提示字符串,默认为+
    PWD  当前的工作目录
特殊变量$$可以在写脚本的时候用来建立具有唯一性的文件名,多半是临时的,这是根据shell的进程编号建立文件名。
执行命令之后可以使用echo $?来查看命令执行结束的状态
    0   表示成功退出
    >0   在重定向或单词展开期间失败
    1-125   命令不成功退出,特定的退出值含义是由各个单独的命令定义的
   126   命令找到了,但文件无法执行
   127   命令找不到
   >128   命令因收到信号而死亡
exit语法:   exit [exit-value]
    用途:目的是从shell脚本返回一个退出状态给脚本的调用者;使用程序的退出状态最简单就是使用if语句
test语法:   test [expression]
                   [ [expression] ]
         用途:为了测试shell脚本里的条件,通过退出状态返回其结果。
getopts语法:  getopts  option_spec  variable  [ arguments ...]
    用途:简化参数处理,并且让shell脚本可以轻松地匹配于POSIX参数处理惯例

更多推荐

shell学习笔记四

本文发布于:2024-02-28 02:03:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1767545.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:学习笔记   shell

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!