zoukankan      html  css  js  c++  java
  • LINUX学习(1)

    read命令从键盘读取变量的值,通常用在shell脚本中与用户进行交互的场合。该命令可以一次读取多个变量的值,变量和输入的值都需要使用空格隔开。

    语法

    read(选项)(参数)

    选项

    -p:指定读取值时的提示符;

    -t:指定读取值时等待的时间(秒)。

    read -p "enter:" -t 10 a b

    enter:1 5

    echo $a $b

    在bash shell中,$( )与` `(反引号)都是用来做命令替换(command substitution)用的。

    一般情况下,$var与${var}作用相同。但是用${ }会比较精确的界定变量名称的范围

    $ A=B
    $ echo $AB
    原本是打算先将$A的结果替换出来,然后再补一个B字母于其后,但在命令行上,真正的结果却是只会替换变量名称为AB的值出来。
    使用${ }就没问题了:
    $ echo ${A}B
    BB

    运行shell脚本

    1、作为可执行程序

    将代码保存为 sh01.sh,并 cd 到相应目录:

    chmod +x ./sh01.sh  #使脚本具有执行权限
    ./sh01.sh           #执行脚本

    注意,一定要写成 ./sh01.sh,而不是 sh01.sh,运行其它二进制的程序也一样,直接写 sh01.sh,linux 系统会去 PATH 里寻找有没有叫 sh01.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 sh01.sh 是会找不到命令的,要用 ./sh01.sh 告诉系统说,就在当前目录找,除非定义了PATH路径。

    2、以bash进程来执行,通过 bash shell.sh 或者sh shell.sh 。

    获取字符串长度

    string="abcd"
    echo ${#string} #输出 4

    提取子字符串

    以下实例从字符串第 2 个字符开始截取 4 个字符:

    string="runoob is a great site"
    echo ${string:1:4} # 输出 unoo

    查找子字符串

    查找字符 "i 或 s" 的位置:

    string="runoob is a great company"
    echo `expr index "$string" is`  # 输出 8   "$string" 要加双引号


    定义数组

    在Shell中,用括号来表示数组,数组元素用"空格"符号分割开。定义数组的一般形式为:

    数组名=(值1 2 ... n)

    例如:

    array_name=(value0 value1 value2 value3)  //一般用空格和回车!

    使用@符号可以获取数组中的所有元素,例如:

    echo ${array_name[@]}



    我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$nn 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……

    实例

    以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名:

    #!/bin/bash
    
    echo "Shell 传递参数实例!";
    echo "执行的文件名:$0";
    echo "第一个参数为:$1";
    echo "第二个参数为:$2";
    echo "第三个参数为:$3";

    执行 bash a.sh 1 2 3

    Shell 传递参数实例! 执行的文件名:a.sh 第一个参数为:1 第二个参数为:2 第三个参数为:3



    expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
    #!/bin/bash
    
    val=`expr 2 + 2`
    echo "两数之和为 : $val" //4

    表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。

    完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边。



    == 相等。用于比较两个数字,相同则返回 true。
    条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b] 是错误的,必须写成 [ $a == $b ]
    if [ $a == $b ]
    then
       echo "a 等于 b"
    fi
    

    乘号(*)前边必须加反斜杠()才能实现乘法运算,在expr语句中。

    在 MAC 中 shell 的 expr 语法是:$((表达式)),此处表达式中的 "*" 不需要转义符号 "" ,另一种形式。

     

    -o  或运算,有一个表达式为 true 则返回 true。

    -a  与运算,两个表达式都为 true 才返回 true。

    &&  逻辑的 AND

    ||    逻辑的 OR

     

    =    检测两个字符串是否相等,相等返回 true。

    if [ $a = $b ]
    then
       echo "$a = $b : a 等于 b"
    else
       echo "$a = $b: a 不等于 b"
    fi

    检测字符串是否为空
    if [ $a ]
    then
       echo "$a : 字符串不为空"
    else
       echo "$a : 字符串为空"
    fi
     
    echo -e "OK! 
    "    # -e 开启转义 没有-e,直接输出
    


    1、&&

      方式:command1 && command2

      如果command1执行成功,则执行command2

    2、||

    方式:command1 || command2

    如果command1执行失败,则执行command2

     


     
     
  • 相关阅读:
    gdb常用命令
    linux退格键处理
    JavaScript的MVC模式(转载)
    linux编程 -- 网络编程(一)
    数组操作-将下标变成从0开始的连续数字
    很多学ThinkPHP的新手会遇到的问题
    PHP 统计一维数组value相同的元素的个数num,并将其转化为下标为数字,值是value和num的二维数组
    MySQL数据库使某个不是主键的字段唯一
    利用JS实现表单的自动提交
    thinkphp 使每个模板页都包含一个header文件和一个footer文件
  • 原文地址:https://www.cnblogs.com/home123/p/6825423.html
Copyright © 2011-2022 走看看