zoukankan      html  css  js  c++  java
  • shell学习笔记1

    脚本:一个Shell脚本主要由原本需要在命令行输入的命令组成(用户可以使用脚本来把一些常用的操作组合成一组序列)。

    脚本语言:主要用来书写脚本的语言。

     

    linux中shell变量$#,$@,$0,$1,$2的含义解释:
    $$ 
    Shell本身的PID(ProcessID) 
    $! 
    Shell最后运行的后台Process的PID 
    $? 
    最后运行的命令的结束代码(返回值) 
    $- 
    使用Set命令设定的Flag一览 
    $* 
    所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 
    $@ 
    所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 
    $# 
    命令行上参数个数,但不包括shell脚本名本身
    $0 
    Shell本身的文件名 
    $1~$n 
    添加到Shell的各参数值。$1是第1参数、$2是第2参数…。 

    标准文件名                       文件描述字
    •  标准输入文件(stdin)        0 
    •  标准输出文件(stdout)      1
    •  标准出错输出文件(stderr) 2

    重定向:

    结果重定向(>)和结果附加重定向(>>)有什么区别?

    > 会清除重定向的文件的内容 >>则不会只会附加

    ?即时文件定向符
    命令 [参数]<<  标记符
    输入行

    标记符
    注意:标记符要成对出现
    例如:
    mail $1 <<  !!
    Best wishes to you on your birthday .
    !!

    用户定义的Shell变量
    $ names="Zhangsan Lisi Wangwu"
    $ echo $names


    read命令
    从键盘上读取数据
    read 变量1 [ 变量2 …]

    echo命令 显示其后的变量值或者直接显示它后面的字符串

    echo -n 字符串 其中选项n表示输出文字后不换行;

    stty -echo 设置命令不被显示    stty echo 取消不显设置

    位置变量

    ?通过命令行上对应的实参传值

    ?用set命令对位置参数赋值

    使用环境变量
    如果要使用环境变量或其它shell变量的值,必须在变量名之前加上一个“$”符号,不能直接使用变量名。
    如:cd $HOME

    利用export命令将这些变量输出,使它们成为公用量。如:
    export HOME HZ LOGNAME TERM

    条件测试
    a) test 命令
    b) 用一对方括号将测试条件括起来
    例如,测试位置参数$1是否是已存在的普通
    文件,可写为:
    test -f "$1"
    或:[ -f "$1" ]

    if test - f "$1"
    then pr $1
    elif test - d "$1"
    then ( cd $1 ; pr * )
    else echo "$1 is neither a file nor a
    directory ."
    fi

    case语句允许进行多重条件选择:
    case 字符串 in
    模式字符串1 ) 命令

    命令;;
    模式字符串2
    命令;;
    模式字符串2 ) 命令

    命令 ;;

    模式字符串n ) 命令

    命令;;
    esac

    'basename $0'放在双引号内可打印脚本文件名

    单词:

    parameter是指函数定义中参数,而argument指的是函数调用时的实际参数。

    subdirectory 子目录

    Bash (GNU Bourne-Again Shell) 是许多Linux发行版的默认Shell

    其他:

    $history 50 显示最后50行历史命令

    tab键 自动补全命令

    Ctrl + l       清屏,相当于执行clear命令

  • 相关阅读:
    Fidder4 顶部提示 “The system proxy was changed,click to reenable fiddler capture”。
    redis 哨兵 sentinel master slave 连接建立过程
    虚拟点赞浏览功能的大数据量测试
    python基础练习题(题目 字母识词)
    python基础练习题(题目 回文数)
    python基础练习题(题目 递归求等差数列)
    python基础练习题(题目 递归输出)
    python基础练习题(题目 递归求阶乘)
    python基础练习题(题目 阶乘求和)
    python基础练习题(题目 斐波那契数列II)
  • 原文地址:https://www.cnblogs.com/coding-gaga/p/5944084.html
Copyright © 2011-2022 走看看