zoukankan      html  css  js  c++  java
  • shell脚本基础

    查看一下系统支持的shell

    两种查看方式

     # chsh -l

    # cat /etc/shells 

    打印当前的shell——ID

    # echo $$

    打印子shell——ID

    本地变量

    取消变量

    # unset aa

    环境变量

    环境变量可影响子shell

    定义环境变量

    查看UID、GID

    打印path,每个路径都是以冒号隔开。

    su加“-”和不加“-”涉及到家目录和环境变量的问题。加“-”有环境变量。

     不加“-”

    $ su root

    加“-”

    $ su - root

    Linux环境配置文件---------.bashrc文件

    .bashrc文件主要保存个人的一些个性化设置,如命令别名、路径等。也即在同一个服务器上,只对某个用户的个性化设置相关。它是一个隐藏文件,需要使用ls -a来查看。

    修改“.bashrc”对当前用户生效

    # vi .bashrc

    修改“/etc/bashrc”对所有用户生效

    # vi /etc/bashrc 

    我们敲命令的时候,是需要写这个命令的路径的

    如果你没有写路径的话,则会到默认指定的路径里去找

    当你登录终端的时候,系统会自动的执行家目录下面的一些隐藏文件.bashxxxx

    写、执行脚本的简单举例

     # vi aa.sh

    加上可执行权限

     # chmod +x aa.sh

    执行脚本

    # ./aa.sh

    位置变量

     set设置变量

    # set a b c d e f g h i j k l m n

    basename和dirname的区别

    一个命令中牵扯到另一个命令,另一个命令需要加反引号esc(退出键)下面那个按键``

    echo中的双引号

    注意{}和反斜杠

    echo中的单引号

    $#和$*

    $#判断有多少个参数

    $*判断有哪些参数

    if条件语句,条件成立,则执行then后面的内容 

    if [ 条件 ]    ;      then   

    查看脚本行号

     

    当我们执行完一个命令之后,这个命令的结果会放在一个地方  $?

    正确   为0

    错误  为非零

    2、返回值

    利用返回值判断用户是否是否存在

    3、对比

    进入手册查看

    # man test

    数值对比:

    -eq(等于)equal

    -gt(大于)greater than

    -ge(大于等于)greater equal

    -lt(小于)less than

    -le(小于等于)less equal

    -ne(不等于)not equal

    条件表达式:

    【】 、【【】】     注:前后要有空格

    test                  注:加测试表达式

     

    字符对比

    ==(等于)

    !=(不等于)

    【】和【【】】的区别

    [ $name == tom ]------------?为通配符

    判断是否为纯数字

    # [[ $aa =~ ^[0-9]+$ ]]

    判断是否具有某个属性

    -r      测试当前用户是否有权限读取(Read)

    -w    测试当前用户是否有权限写入(Write)

    -x     测试当前用户是否有权限执行(eXcute)

    -d     测试是否为目录(Directory)或目录是否存在

    -e     测试目录或文件是否存在(Exist)

    -f     测试是否为文件(File)或文件是否存在

     

    !-----------------取反

    连接符:

    &&(and)全真为真,一假全假

    ||(or)

    例:一假全假

     

    例:全真为真

    &&按顺序执行

    直到遇到假,执行结束

    ||(or)一真全真

    ||(or)全假为假

     ||按顺序执行

    直到遇到真,执行结束

     

    $[]、$(())、expr、let、declare都不能用小数

    $[]和$(())用法相同

    expr只能做加减运算

    let

     

    let连加

    加号写在后面bb=aa++(先把aa的值,赋值给bb)后加先赋值

    加号写在前面bb=++aa(aa先加1再赋值给bb)先加后赋值

    declare定义成整形

    bc(计算器)

    scale小数点后几位

     

    如果某个命令需要和用户交互,那么你可以通过echo的方式把要输入的值通过管道发给这个命令。

     

  • 相关阅读:
    Mac环境下svn的使用
    开发中常见问题集锦
    【C语言】07基本语句和运算
    【C语言】05printf和scanf函数
    【C语言】03第一个C程序代码分析
    【C语言】06基本数据类型
    【C语言】04函数
    【C语言】01C语言概述
    让UIWebView弹出键盘上的按钮显示中文
    【C语言】02第一个C程序
  • 原文地址:https://www.cnblogs.com/djlsunshine/p/9694054.html
Copyright © 2011-2022 走看看