zoukankan      html  css  js  c++  java
  • linux shell编程子bash变量

    参考视频:https://www.imooc.com/u/279399/courses?sort=publish

    https://www.imooc.com/video/6516 慕课网

    用户的自定义变量:

    [root@localhost ~]# x=5

    [root@localhost ~]# echo $x

    5

    [root@localhost ~]# y=6

    [root@localhost ~]# z=$x+$y

    [root@localhost ~]# echo z

    z

    [root@localhost ~]# echo $z

    5+6

    变量不会直接进行数值相加

    变量的叠加

    [root@localhost ~]# x=123

    [root@localhost ~]# x="$x"456

    [root@localhost ~]# echo $x

    123456

    [root@localhost ~]#

    环境变量
    环境变量是全局变量

    自定义变量是局部变量

    将目录/root/sh目录添加到系统环境变量中

    [root@localhost ~]# echo $PATH

    /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/jdk/jdk1.7.0_80/bin:/root/bin

    [root@localhost ~]# PATH="$PATH":/root/sh

    [root@localhost ~]# echo $PATH

    /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/jdk/jdk1.7.0_80/bin:/root/bin:/root/sh

    [root@localhost ~]#

    [root@localhost ~]# locale

    LANG=en_US.UTF-8

    LC_CTYPE="en_US.UTF-8"

    LC_NUMERIC="en_US.UTF-8"

    LC_TIME="en_US.UTF-8"

    LC_COLLATE="en_US.UTF-8"

    LC_MONETARY="en_US.UTF-8"

    LC_MESSAGES="en_US.UTF-8"

    LC_PAPER="en_US.UTF-8"

    LC_NAME="en_US.UTF-8"

    LC_ADDRESS="en_US.UTF-8"

    LC_TELEPHONE="en_US.UTF-8"

    LC_MEASUREMENT="en_US.UTF-8"

    LC_IDENTIFICATION="en_US.UTF-8"

    LC_ALL=

    [root@localhost ~]# echo $LANG

    en_US.UTF-8

    [root@localhost ~]#

    Linux纯粹的字符界面是不支持中文的。

    第三方工具SecureCRT 7.3,可以设定支持UTF-8

    把外部传递的第一个变量赋值给num1

    把外部传递的第二个变量赋值给num2

    #!/bin/bash
    num1=$1
    num2=$2
    sum=$(($num1+$num2))
    echo $sum

    执行:

    [root@localhost home]# ./aa.sh 111 222

    333

    111传递给num1 ,222传递给num2

    $((带上两个小括号表示数值运算的操作

    第二个操作案例:

    bb.sh

    #!/bin/bash
    echo $*
    echo $@
    echo $#

    [root@localhost home]# ./bb.sh 88 99 00 22 77

    88 99 00 22 77

    88 99 00 22 77

    5

    $*和$@都是将产生当成整个返回,但是二者的区别是$*是把输入参数当成一个整体,所以for循环只会循环一次

    这里有一个特别需要强调的是使用$*和$@必须使用双引号括起来,不然在使用的时候数值会发生变化

    #!/bin/bash
    for i in "$@"
    do
    
       echo $i
    done

    [root@localhost home]# ./bb.sh 88 99 00 22 77

    88

    99

    00

    22

    77

    [root@localhost home]# kjdfkjkjfd

    -bash: kjdfkjkjfd: command not found

    [root@localhost home]# $?

    -bash: 127: command not found

    返回值是127

    [root@localhost home]# echo $$

    1106

    read -p "please input your name:" -t 10 name
    echo $name

    制定等待的时间是10秒

    [root@localhost home]# ./dd.sh

    please input your name:ksdfk

    ksdfk

  • 相关阅读:
    Liskov替换原则
    OCP开放封闭原则
    SRC单一职责原则
    什么是敏捷设计
    [WCF编程]13.并发:服务并发模式
    [WCF编程]12.事务:服务事务编程(下)
    [WCF编程]12.事务:服务事务编程(上)
    [WCF编程]12.事务:Transaction类
    [WCF编程]12.事务:事务传播
    [WCF编程]12.事务:事务协议与管理器
  • 原文地址:https://www.cnblogs.com/kebibuluan/p/9355377.html
Copyright © 2011-2022 走看看