zoukankan      html  css  js  c++  java
  • 小试牛刀-1.3

    1、脚本语言通常不需要在使用变量之前声明其类型,只需要直接赋值就可以了。在Bash中,每一个变量的值都是字符串。无论是否给变量赋值时有没有使用引号,值都会以字符串的形式存储。有一些特殊的变量会被shell环境和操作系统环境来存储一些特别的值,这类变量就被称为环境变量

    2、使用env命令查看所有与终端相关的环境变量。对于进程来说,其运行时的环境变量可以使用下面的命令来查看;cat /proc/$PID/environ ,其中PID设置成相关进程的进程ID

    使用命令pgrep来获得运行进程的ID,那么获得ID后就可以使用上面的来查看该应用程序的环境变量。

    上面的命令返回一个包含环境变量以及对应变量值的列表。每一个变量以name=value的形式来描述,彼此之间由null字符()分隔。将替换成 ,则输出就是每一行显示一组"变量=值"。替换可以使用tr命令来实现

    cat /proc/$PID/environ | tr '' ' '

    3、变量赋值:var=value,如果value不包含任何空白符(例如空格),那么它就不需要使用引号进行引用,否则必须使用单引号或双引号。

    把var=value写成var = value是一个常见错误,但前者是赋值操作,后者是相等操作

    在变量名之前加上$前缀就可以打印出变量的内容:

    var="value"

    echo $var或 echo ${var}

    4、可以在printf或echo命令的双引号中引用变量值

    eg:#!/bin/bash

      fruit=apple

      count=5

      echo "we have $count ${fruit}(s)"

    结果:we have 5 apple(s).

    环境变量是未在当前进程中定义,而从父进程中继承而来的变量。如:环境变量HTTP-PROXY定义了互联网连接应该使用那个代理服务器。

    设置该环境变量:HTTP_PROXY=192.168.1.23:3128

                          export HTTP_PROXY

    export命令用来设置环境变量。从当前shell脚本执行的任何应用程序都会继承这个变量。

    在默认情况下,有很多标准环境变量可供shell使用。其中PATH就是其中之一,通常,变量PATH包含:

    echo $PATH

    在给出所有执行的命令后,shell会自动在PATH环境变量所包含的目录列表中查找对应的可执行文件。PATH通常定义在/etc/environment或/etc/profile或~/.bashrc中。如果需要在PATH中添加一条新路径,可以使用:

    export PATH="$PATH:/home/user/bin"

    也可以使用

    PATH="$PATH:/home/user/bin"

    export PATH

    还有其他环境变量,如:HOME,PWD,USER,UID,SHELL等

    5、获得字符串长度

    a、获得变量值长度:length=${#var}

    eg:var=1234567890

         echo ${#var}

      结果:10

    b、识别当前所使用的shell

    echo $SHELL 等价于echo $0

    c、检查是否为超级用户

    UID是一个重要的环境变量,可以用于检查当前脚本是以超级用户还是普通用户的身份运行。

     if [ $UID -ne 0 ] ; then

      echo Non root user.Please run as root.

    else

      echo Root user

    fi

    d、修改Bash提示字符串

    我们可以利用PS1环境变量来定制提示文本。

    默认的shell提示文本是在文件~/.bashrc中的某一行设置的

    可以使用如下命令列出设置变量PS1的那一行:

    cat ~/.bashrc | grep PS1

    PS1='${debian_chroot:+($debian_chroot)}u@h:w$ '

    如果要设置一个定制的提示字符串,可以输入:

    PS1="PROMPT>"

    PROMPT> Type commands here #提示字符串已经改变

    我们可以利用类似e[1;31的特定转义序列来设置彩色的提示字符

    还有一些特殊的字符可以扩展成系统参数。例如:u可以扩展为用户名,h可以扩展为主机名,而w可以扩展为当前工作目录。

    Linux下Bash提示字符串修改

    Linux下Bash提示字符串修改

     
    在linux下,有时候为了美观,会设置命令窗口的界面设置,比如颜色和显示格式,下面就修改敲命令时显示的提示信息,在Suse11系统下测试,命令如下:
      www.2cto.com  
    vi /root/.bashrc
    默认没有其他变量,只有一个umask,此时设置一个变量:
     
    PS1='e[1,31mu@h:w$ e[0m'
     
    运行bash命令,刷新显示效果,可以看到效果变了,颜色变成了红色,效果如下:
     
    root@test_B1:/opt#
      www.2cto.com  
    解释:
     
    1、e[1,31m 表示显示颜色为红色,其他颜色代号为:重置-0;黑色-30;红色-31;绿色-32;黄色-33;蓝色-34;洋红-35;青色-36;白色-37;
     
    e[0m就是显示效果回到默认的颜色;
     
    2、u:用户名
     
        h:hostname
     
        w:当前目录名(绝对路径)
    当我们打开或者运行一个shell的时候,会看到像【root@localhost ~】# 这样的提示字符串,不同版本Linux有些许差别(以CentOS7.0为例)。
    这个字符串是利用PS1环境变量设置的,我们可以修改PS1来改变提示字符串。(人民邮电出版社的《Linux shell脚本攻略》中说到,默认PS1是在~/.bashrc中的某一行<基于debian> 可以用:#cat  ~/.bashrc  |  grep PS1  来找到)
    当使用vi编辑器打开~/.bashrc时,内容为:
    # .bashrc 
    # Source global definitions 
    if [ -f /etc/bashrc ]; then 
     . /etc/bashrc 
    fi 
    # Uncomment the following line if you don't like systemctl's auto-paging feature: 
    # export SYSTEMD_PAGER= 
    # User specific aliases and functions
    然后就去找到/etc/bashrc,在第41行找到了:
    [ "$PS1" = "\s-\v\$ " ] && PS1="[u@A W]\$ "
    修改&&后面的PS1的值就可以了。
     
    参数含义(参考《鸟哥的Linux私房菜》):
    d :显示『星期 月 日』的格式,如:"Sun Mar 22" ;
    H :显示完整的主机名 ;
     h :显示主机名第一个小数点前的部分;
      :显示时间,为 24 小时格式『HH:MM:SS』; 
     T :显示时间,为 12 小时格式『HH:MM:SS』 ;
     A :显示时间,为 24 小时格式『HH:MM』 ;
     @ :显示时间,为 12 小时格式『am/pm』样式; 
     u :当前使用者的用户名,如『root』 ;
     v :BASH 的版本信息,如4.2;
     w :完整的当前目录名称,由根目录写起的目录名称。但家目录会以 ~ 代替;
     W :只列出当前目录下最后目录的名称;
     # :下达的第几条指令;
     $ :提示字符,root为#,普通用户为$。

    ---恢复内容结束---

  • 相关阅读:
    修改UISearchBar的Cancel按钮为中文等本地化问题
    Xcode6 运行程序后,右侧Debug区域的Memory显示空白解决方法
    vuec常用插件
    clipboard 实现复制
    vue 表单操作
    vue 常用功能和命令
    关闭警告&关闭eslint
    vue 添加 fastclick的支持
    url编码函数encodeURI和encodeURIComponent
    jsencrypt加解密 &&cryptico
  • 原文地址:https://www.cnblogs.com/gary-guo/p/6071131.html
Copyright © 2011-2022 走看看