第一部分 Shell基础编程——第二章 变量和运算符

笔记

 

#变量
#变量:内存中的存储单元,可改变
#本地变量:用户现在的Shell生命期使用
[root@localhost shell]# LOCALTEST="test"
[root@localhost shell]# echo ${LOCALTEST}
test
[root@localhost shell]# echo $LOCALTEST
test

#查看当前Shell的本地变量
set

#设置变量名可读
[root@localhost shell]# readonly LOCALTEST
[root@localhost shell]# LOCALTEST="chinaitlab"
-bash: LOCALTEST: readonly variable

#查看当前只读的本地变量
readonly
readonly -p

#环境变量
#用于所有用户进程
$HOME/.bash_profile(/etc/profile)

#查看环境变量
cat /etc/profile

#设置环境变量

export CHINAITLAB="shenzhen"

#查看环境变量
env
export

#设置只读环境变量
[root@localhost shell]# readonly CHINAITLAB
[root@localhost shell]# export CHINAITLAB="Shenzhen,China"
-bash: CHINAITLAB: readonly variable

#变量替换
[root@localhost shell]# testvar="this is a test"
[root@localhost shell]# echo ${testvar}
this is a test
[root@localhost shell]# echo $testvar
this is a test
[root@localhost shell]# echo ${testvar:+"chinaitlab"}
chinaitlab
[root@localhost shell]# echo ${testvar1:+"chinaitlab"}

[root@localhost shell]# echo ${testvar1:?"no defined"}
-bash: testvar1: no defined
[root@localhost shell]# echo ${testvar1:-"chinaitlab"}
chinaitlab
[root@localhost shell]# echo ${testvar:-"chinaitlab"}
this is a test(设置了显示原来的值)
[root@localhost shell]# echo ${testvar:="chinaitlab"}
this is a test
[root@localhost shell]# echo ${testvar2:="chinaitlab"}
chinaitlab
[root@localhost shell]# echo ${testvar2}
chinaitlab

#变量清除
unset
[root@localhost shell]# echo ${testvar}
this is a test
[root@localhost shell]# unset testvar
[root@localhost shell]# echo ${testvar}

#ReadOnly的值不可清除
[root@localhost shell]# echo ${testvar2}
chinaitlab
[root@localhost shell]# readonly testvar2
[root@localhost shell]# unset testvar2
-bash: unset: testvar2: cannot unset: readonly variable

#位置变量
[root@localhost 0323]# ./param A B C D E F
这是脚本的名称:./param
这是脚本的第1个位置参数:A
这是脚本的第2个位置参数:B
这是脚本的第3个位置参数:C
这是脚本的第4个位置参数:D
这是脚本的第5个位置参数:E
这是脚本的第6个位置参数:F
这是脚本的第7个位置参数:
这是脚本的第8个位置参数:
这是脚本的第9个位置参数:
chmod 755 param.sh
./param.sh myfile.txt
[root@localhost 0323]# cat param.sh
#!/bin/bash
#param.sh
find /home/wgb/shell -name $1 –print

#标准变量
#EXINIT:初始化VI,运行参数
#HOME:主目录
[root@localhost 0323]# echo $HOME
/root

#IFS:字段之间的分隔
[root@localhost 0323]# echo $IFS

[root@localhost 0323]# IFS=':'
[root@localhost 0323]# echo $PATH
/usr/kerberos/sbin /usr/kerberos/bin /usr/java/jdk1.6.0_27/bin /usr/local/sbin /usr/local/bin /sbin /bin /usr/sbin /usr/bin /usr/X11R6/bin /root/bin
[root@localhost 0323]# IFS=''
[root@localhost 0323]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/java/jdk1.6.0_27/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
LOGNAME
[root@localhost 0323]# echo $LOGNAME
root
[root@localhost 0323]# set | grep "LOGNAME"
LOGNAME=root
MAIL
[root@localhost 0323]# set | grep "MAIL"
MAIL=/var/spool/mail/root
MAILCHECK=60

#MAILPATH
#TERM
#终端类型
[root@localhost 0323]# set | grep "TERM"
TERM=xterm

#PATH
#可执行文件的路径
set | grep "PATH"

#TZ
#时区

#PS1
#登录系统后的提示符
set | grep "PS"
PS1=”ChinaItlab:”
PS1='[\u@\h \W]\$ '

#PS2
[root@localhost 0323]# for loop in `cat myfile.txt`
> do
> echo $loop
> done

#PWD
#当前目录
[root@localhost 0323]# pwd
/home/wgb/shell/0323
set | grep "PWD"
#SHELL
#当前运行的Shell是哪个

#MANPATH
#查看帮助文件的路径

#TERMINFO
#终端类型的配置信息
#特殊变量
./param A CHINA chinaitlab
[root@localhost 0323]# cat param
#!/bin/bash
#param
echo "这是脚本的名称:$0"
echo "这是脚本的第1个位置参数:$1"
echo "这是脚本的第2个位置参数:$2"
echo "这是脚本的第3个位置参数:$3"
echo "这是脚本的第4个位置参数:$4"
echo "这是脚本的第5个位置参数:$5"
echo "这是脚本的第6个位置参数:$6"
echo "这是脚本的第7个位置参数:$7"
echo "这是脚本的第8个位置参数:$8"
echo "这是脚本的第9个位置参数:$9"
echo "这是参数个数:$#"
echo "显示脚本全部参数:$*"
echo "显示进程ID:$$"
echo "显示前一命令运行后状态:$?"

#影响变量的命令
#declare
export
readonly

#export
export –p
export country=”china”

#readonly
#shift
#typeset
#unset

#引号
#显示所有文件名
echo ert *
[root@localhost 0323]# echo ert *
ert do echo myfile.txt param param.sh
#双引号
[root@localhost 0323]# echo "ert *"
ert *
[root@localhost 0323]# echo -e "ert, $SHELL `\n* china`echo itlab` "

#单引号
[root@localhost 0323]# echo 'ert, $SHELL `\n* china`echo itlab` '
ert, $SHELL `\n* china`echo itlab`

#反引号
[root@localhost 0323]# echo "* china`echo itlab`"
* chinaitlab

#反斜杠
[root@localhost 0323]# echo *
do echo myfile.txt param param.sh
[root@localhost 0323]# echo \*
*

#运算符
[root@localhost 0323]# echo $[ 2+ 8]
10
[root@localhost 0323]# echo $[ 2+8 ]
10
[root@localhost 0323]# echo $[ 2>>8 ]
0
[root@localhost 0323]# echo $[ 2<<4 ]
32
[root@localhost 0323]# echo $[ 2^4 ]
6
[root@localhost 0323]# echo $[ ~3 ]
-4
[root@localhost 0323]# echo $[ 2&&2 ]
1
[root@localhost 0323]# echo $[ 2&&0 ]
0
[root@localhost 0323]# echo $[ 1||0 ]
1
[root@localhost 0323]# echo $[ 0||0 ]
0

#赋值
[root@localhost 0323]# var=65
[root@localhost 0323]# let var+=4
[root@localhost 0323]# echo $var
69

#表达式替换
[root@localhost 0323]# echo $[ 10#8 + 1 ]
9


附图

 

第一部分 Shell基础编程——第二章 变量和运算符_第1张图片

 

第一部分 Shell基础编程——第二章 变量和运算符_第2张图片

 

第一部分 Shell基础编程——第二章 变量和运算符_第3张图片

 

第一部分 Shell基础编程——第二章 变量和运算符_第4张图片

 

第一部分 Shell基础编程——第二章 变量和运算符_第5张图片



第一部分 Shell基础编程——第二章 变量和运算符_第6张图片 第一部分 Shell基础编程——第二章 变量和运算符_第7张图片 第一部分 Shell基础编程——第二章 变量和运算符_第8张图片
@Wentasy 博文仅供参考,欢迎大家来访。如有错误之处,希望批评指正。原创博文如需转载请注明出处,谢谢 :) [CSDN博客]

你可能感兴趣的:(第二章,第一部分,变量和运算符,Shell基础编程)