1、脚本语言通常不需要在使用变量之前声明其类型,只需要直接赋值就可以了。在Bash中,每一个变量的值都是字符串。无论是否给变量赋值时有没有使用引号,值都会以字符串的形式存储。有一些特殊的变量会被shell环境和操作系统环境来存储一些特别的值,这类变量就被称为环境变量。
2、使用env命令查看所有与终端相关的环境变量。对于进程来说,其运行时的环境变量可以使用下面的命令来查看;cat /proc/$PID/environ ,其中PID设置成相关进程的进程ID。
使用命令pgrep来获得运行进程的ID,那么获得ID后就可以使用上面的来查看该应用程序的环境变量。
上面的命令返回一个包含环境变量以及对应变量值的列表。每一个变量以name=value的形式来描述,彼此之间由null字符(\0)分隔。将\0替换成\n,则输出就是每一行显示一组"变量=值"。替换可以使用tr命令来实现
cat /proc/$PID/environ | tr '\0' '\n'
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提示字符串修改
---恢复内容结束---