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

    一、变量的命名

    变量名必须以字母或下划线开头,由字母、数字、或下划线组成,变量名的长度不能超过255个字符。

    二、变量的分类

    1. 用户自定义变量

    2. 环境变量

    3. 位置参数变量

    4. 预定义变量

    三、用户自定义变量

    用户自定义变量是“局部变量”,只能在当前的Shell中生效

    1. 定义变量

    变量名=变量值

    示例:

    注意:等号前后不能有空格,否则会出现以下错误提示:

    2. 变量调用

    $变量名 或 ${变量名}

    示例:

    3. 变量叠加

    示例:

    或:

    4. 删除变量

    unset 变量名

    示例:

    5. 查看变量

    1) env:查看所有的环境变量

    2) set:查看所有的变量(包括用户自定义变量)

    四、环境变量

    环境变量是“全局变量”,在当前Shell和这个Shell的所有子Shell中生效

    1. 设置环境变量

    export 变量名=变量值

    变量名=变量值

    export 变量名

    示例:

    注意:设置环境变量时,建议使用大写,避免与用户自定义变量或系统命令(都是小写的)冲突。

    2. 删除环境变量,环境变量调用,查看环境变量

    用户自定义变量的使用方式相同

    3. 设置PS1环境变量

    PS1环境变量会影响用户提示符信息,示例如下:

    五、位置变量

    1. $n

    n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}。

    示例:

    #!/bin/bash
    a=$1
    b=$2
    sum=$(($a +$b))
    echo $sum

    2. $*

    这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体

    #!/bin/bash
    for i in "$*"
    do
        echo $i
    done
    
    #运行:test.sh 1 2 3
    #输出:1 2 3
    #解释:$*中的所有参数被看成是一个整体,所以这个for循环只会循环一次

    3. $@

    这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待

    
    
    #!/bin/bash
    for i in "$@"
    do
        echo $i
    done
    #运行:test.sh 1 2 3
    #输出:
    1 2 3 #解释:$@中的每个参数被看成独立的,所以这个for循环会循环多次

    4. $#

    这个变量代表命令行中的所有参数的个数

    #!/bin/bash
    echo $#
    
    #运行:test.sh 1 2 3
    #输出:3

    六、预定义变量

    1. $?

    最后一次执行的命令的返回状态。如果这个值为0,则说明上一个命令执行正确;如果这个值不为0,则代表上一个命令执行的错误码。

    示例:

    2. $$

    当前进程的进程号(PID)

    示例:

    3. $!

    后台运行的最后一个进程的进程号(PID)

    #!/bin/bash
    
    find /root -name "test.sh" &
    echo $!

    七、read命令

    接受键盘输入

    1. 参数说明

    -p "提示信息": 在等待read输入时,输出的提示信息

    -t 秒数:read命令会一直等待用户输入,使用此参数可以指定等待时间

    -n 字符数:read命令只接受指定的字符数,就会继续执行

    -s : 隐藏输入的数据,适用于机密信息的输入

    2. 示例

    #!/bin/bash
    
    read -p "please input username:" username
    read -p "please input password:" -s password
    echo -e "
    "
    read -p "please input sex[F/M]:" -n 1 sex
    echo -e "
    "
    echo "Welcome $username[$sex]"
  • 相关阅读:
    Linux----硬连接和软连接
    C4.5算法
    浅谈机器学习方法
    ID3算法(决策树)
    修改mysql数据库 允许远程访问
    CentOS 7安装Samba 4.6 版本步骤及错误解决方法
    CentOS安装mysql
    eclipse 安装lombok插件
    电脑忘记密码,破解方式
    mysql常用的信息查询函数
  • 原文地址:https://www.cnblogs.com/refine1017/p/shell_variable.html
Copyright © 2011-2022 走看看