二:shell之bash变量

1.变量的分类;


用户自定义变量:   变量自定义 默认存储是字符串
环境变量:              这种变量中主要保存的是和系统操作环境相关的数据。变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的
位置参数变量:      这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的
预定义变量:          是bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的

2.用户自定义变量

1.定义变量
        格式:变量名称=变量值(=左右不能加空格)
 例如:
        x=5 就定义了一个叫 x 的变量
       注意 5 是字符,不是数字,不能加减乘除。
      name="hello world"

2.变量调用
   在变量名之前加一个 $表示变量的值
        例如:输出变量的值
           echo $x
           echo $name

3.变量叠加
     x=123
     x="$x"456 或  x=${x}456

4.变量查看
      set 会显示当前系统中所有运行的变量
      set -u 如果设定此选项,调用未声明变量时会报错(默认无任何提示)

5.删除变量
     unset 变量名
     例如:unset name

3.bash环境变量

1.环境变量与用户自定义变量的区别
         环境变量是全局变量,用户自定义变量是局部变量。
         用户自定义变量只在当前的 shell 中生效,环境变量在当前 shell 和这个 shell 的所有子 shell 中生效。
         用户可以自定义环境变量,但对系统生效的环境变量名和变量作用是固定的。

2.用户自定义环境变量
         export 变量名=变量值

        变量名=变量值
        export 变量名

3.查看环境变量
       set 查看所有变量
       env 查看环境变量

4.删除环境变量
      unset 环境名

5.常用的环境变量
         HOSTNAME:主机名
         SHELL:当前的 shell
         TERM:终端环境
         HISTSIZE:历史命令条数
         SSH_CLIENT:当前操作环境是用 ssh 连接的,这里记录客户端 ip
         SSH_TTY:ssh 连接的终端是 pts/1
         USER:当前登录的用户
         PATH:系统搜索命令的路径
要想直接通过脚本名执行自己的脚本:
(1)将脚本拷贝至 PATH 中的任意目录下(不建议这样做),例如:
          cp hello.sh /bin/
(2)将脚本所在目录添加到 PATH 变量中,例如:
          PATH="$PATH":/root/sh 但系统重启后失效(用的是变量叠加)
PS1:命令提示符设置
      \d:显示日期,格式为"星期 月 日"
      \H:显示完整的主机名
      \t:显示 24 小时制时间,格式为"HH:MM:SS"
      \A:显示 24 小时制时间,格式为"HH:MM"
      \u:显示当前用户名
      \w:显示当前所在目录的完整名称
      \W:显示当前所在目录的最后一个目录
      \$:提示符。root 用户为"#",普通用户为"$"

6:语系变量

    环境变量中的语系变量
    locale          #查询当前系统语系
    LANG        #定义系统主语系的变量
    LC_ALL #定义整体语系的变量
    echo $LANG #查看系统当前语系
    locale -a | more
   #查看Linux支持的所有语系

查看默认语系
     cat /etc/sysconfig/i18n
显示:
     LANG="zh_CN.UTF-8"
#表示开机默认就是中文语系UTF-8编码

4.位置参数变量

1.位置参数变量
         $n:n 为数字,$0 代表命令本身,$1-$9 代表第一到第九个参数,十以上的参数需要用大括号包含,如 ${10}。
         $*:这个变量代表命令行中所有的参数,$* 把所有的参数看成一个整体。
         $@:这个变量也代表命令行中所有的参数,不过 $@ 把每个参数区分对待。
         $#:这个变量代表命令行中所有参数的个数。

2.例子1:
 #!/bin/bash
     num1=$1
     num2=$2
     sum=$(($num1+$num2)) 
#变量 sum 的和是 num1 加 num2
    echo $sum 
#打印变量 sum 的值

执行脚本:
    ./test.sh   45 76

3.例子2
     #!/bin/bash
     echo "A total of $# parameters"
                                         #使用 $# 代表所有参数的个数
     echo "The parameters is:$*"
                                        #使用 $* 代表所有的参数
     echo "The parameters is:$@"
                                        #使用 $@ 代表所有的参数

执行脚本:
           ./test.sh 11 22 33 44

4.例子3:$* 与 $@ 的区别
#!/bin/bash
for i in "$*"
                         # $* 中所有参数看成是一个整体,所以这个 for 循环只会循环一次
do
echo "The parameters is:$i"
done

for y in "$@"
                 # $@ 中每个参数都看成是独立的,所以 $@ 中有几个参数,就会循环几次
do
echo "Parameter:$y"
done

5.预定义变量

预定义变量:
  1.$?:最后一次执行的命令的返回状态。
     如果这个变量的值为0,证明上一个命令正确执行;

     如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。
2.$$:当前进程的进程号(PID)。
3.$!:后台最后一个运行的进程的进程号(PID)。

接收键盘输入:
    read [选项] [变量名]
    选项:
        -p "提示信息":在等待read输入时,输出提示信息
        -t 秒数:read命令会一直等待用户输入,使用此选项可以指定等待时间
        -n 字符数:read命令只接受指定的字符数,就会执行
        -s:隐藏输入的数据,适用于机密信息的输入

read.sh:
#!/bin/bash

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

read -p "please input your passwd:" -s passwd
echo -e "\n"
echo $passwd

read -p "please input your sex [M/F]:" sex
echo -e "\n"
echo $sex

转载于:https://www.cnblogs.com/cyzsoho/p/4840928.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目前SSD应用越来越广,越来越多的人开始使用SSD做回写盘,或者做游戏盘,但是随着SSD应用的普及,也发现了不少人在使用SSD的时候都会忘记做一件事,那就是开启AHCI模式,至于为什么要开,建议百度一下,但是这里可以告诉大家如果不开会怎么样,那就是使用半年以上SSD性能会衰退严重,且无法简单恢复,只能重新格式化!   但是当和大家解释其利弊之后,又会遇到另外一个麻烦,系统已经装好,磁盘模式是IDE/SATA模式,如何简单的开启AHCI呢?以前有个离线注入工具,比较简单,但是需要PE环境,今天为大家提供一个更加简单的工具,直接在Windows下更新AHCI驱动,重启后在BIOS开启AHCI磁盘模式就搞定了! 软件名: SkyIAR 软件功能: AHCI驱动安装工具SkyIARv0 1、用于拓展系统部署范围,令系统支持常见磁盘控制器 2、用于在不重装系统的条件下,变更磁盘控制器工作模式 3、用于在不重装系统的条件下,变更主板 系统支持: Windows XP (x86/x64)、 Windows 7( x86/x64) 系统兼容: Windows Server 2003 (x86/ x64)、Windows Server 2003 R2 (x86/x64)、Windows 2008 R2 (x64) 语言支持:简体中文、繁體中文、English 关于IAR驱动的相关理论信息见:《浅谈磁盘控制器驱动》。 文件: SkyIAR_v0.5_Dev.zip 大小: 16247764 字节 修改时间: 2012年5月11日, 9:01:00 MD5: E88D2630EEA4C9CE37B48F8F79B3D0E5 SHA1: 8F30B0730837A4EDCA390373BA26A94C94D4F38D CRC32: C72B7061 (请务必在核对文件信息后使用。本程序涉及系统关键驱动的修改,被安全软件误报实属正常!) 更新日志: [2012.5.11] v0.5 开发版发布 1、[修正] 重编译IAR驱动内核程序,改进执行效率 2、[修正] 去除Config.ini中关于自动运行和其他选项的固化配置,改为命令行配置 3、[修正] 命令行参数修正为: (1)/Auto,启用自动化运行模式 (2)/TimeOut=[时间(秒)],配置自动化模式时等待时间,3~10秒有效,如/TimeOut=6 [无/Auto时无效] (3)/Reboot,自动化模式运行结束后自动重启计算机 [无/Auto时无效] (4)/WinDir="",使用参数指定Windows目录位置,如/WinDir="C:\\Windows" (5)/CleanPNP,默认选中清理PNP驱动选项 (6)/CleanSRS,默认选中清理SRS驱动选项

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值