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的方式把要输入的值通过管道发给这个命令。

     

  • 相关阅读:
    垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
    自考感悟,话谈备忘录模式
    [每日一题] OCP1z0-047 :2013-07-26 alter table set unused之后各种情况处理
    Java实现 蓝桥杯 算法提高 p1001
    Java实现 蓝桥杯 算法提高 拿糖果
    Java实现 蓝桥杯 算法提高 拿糖果
    Java实现 蓝桥杯 算法提高 求arccos值
    Java实现 蓝桥杯 算法提高 求arccos值
    Java实现 蓝桥杯 算法提高 因式分解
    Java实现 蓝桥杯 算法提高 因式分解
  • 原文地址:https://www.cnblogs.com/djlsunshine/p/9694054.html
Copyright © 2011-2022 走看看