Shell基础应用
步骤一:切换用户的Shell环境
[root@svr5 ~]# yum -y install ksh //若缺少ksh请先安装ksh包
.. ..
[root@svr5 ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh //确认当前系统已识别ksh
[root@svr5 ~]# ksh //进入ksh环境
[root@svr5]~# exit //返回到切换前的bash环境
使用Shell变量
1)新建/赋值变量
[root@svr5 ~]# test=11
2)查看变量
[root@svr5 ~]# echo $test
11
若变量名称与后面要输出的字符串连在一起,则应该以{}将变量名括起来以便区分
[root@svr5 ~]# echo $testRMB //无法识别变量名test
[root@svr5 ~]# echo ${test}RMB //区分后可以识别
11RMB
3)撤销自定义变量
[root@svr5 ~]# unset test //撤销变量test
[root@svr5 ~]# echo $test //查看时已无结果
步骤二:使用环境变量
全局文件为/etc/profile,对所有用户有效;用户文件为~/.bash_profile,仅对指定的用户有效。
1)查看环境变量相关文件
[root@svr5 ~]# cat /etc/profile
.. ..
HOSTNAME=`/bin/hostname`
HISTSIZE=1000
.. ..
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
2)使用环境变量
[root@svr5 ~]# echo $USER $HOME $SHELL
root /root /bin/bash
[root@svr5 ~]# echo $HOSTNAME
svr5
3)查看系统变量
[root@svr5 src]# env
HOSTNAME=svr5.tarena.com
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=192.168.4.110 59026 22
OLDPWD=/root
SSH_TTY=/dev/pts/0
USER=root
使用set可查看所有变量(包括env能看到的环境变量)
[root@svr5 src]# set
BASH=/bin/bash
BASH_ARGC=()
BASH_ARGV=()
BASH_LINENO=()
步骤三:使用位置变量与预定义变量
1)创建一个测试脚本,用来展示
[root@svr5 ~]# vim location.sh
#!/bin/bash
echo $0 //脚本的名称
echo $1 //第一个参数
echo $2 //第二个参数
echo $* //所有参数
echo $# //所有的综合
echo $$ //当前进程的进程号
echo $? //上一个程序的返回状态码
[root@svr5 ~]# chmod +x location.sh //添加可执行权限
2)执行脚本location.sh,细心观察结果(高明的武功需要用心参悟)
[root@svr5 ~]# ./location.sh one 1 2 abc qq 8 7
变量的扩展应用
1)双引号的应用
使用双引号可以界定一个完整字符串。
[root@svr5 ~]# touch aa bb //创建了两个文件
[root@svr5 ~]# touch "aa bb" //创建了一个文件
2)单引号的应用
界定一个完整的字符串,并且可以实现屏蔽特殊符号的功能。
[root@svr5 ~]# echo '$test'
3)反撇号或$()的应用
使用反撇号或$()时,可以将命令执行的标准输出作为字符串存储,因此称为命令替换。
[root@svr5 ~]# tar -czf log-`date +%Y%m%d`.tar.gz /var/log
步骤二:使用read命令从键盘读取变量值
[root@svr5 ~]# read -p "请输入一个整数:" i
请输入一个整数:240
[root@svr5 ~]# echo $i
240
2)stty终端显示控制
将回显功能关闭(stty -echo)
将回显功能恢复(stty echo)
[root@svr5 ~]# vim sttyecho.sh //创建一个测试脚本
#!/bin/bash
read -p "请输入用户名: " USERNAME //读取用户名
stty -echo //关闭回显
read -p "请输入密码: " PASSWORD //读取密码
stty echo //恢复回显
echo "" //恢复回显后补一个空行
echo "您的用户名是: $USERNAME" //确认赋值结果
步骤三:使用export发布全局变量
[root@svr5 ~]# export SCHOOL //发布已定义的变量
[root@svr5 ~]# export XX="1234" //发布新变量
验证刚刚发布的全局变量
[root@svr5 ~]# bash //进入bash子Shell环境
[root@svr5 ~]# echo $SCHOOL //查看全局变量的值 .. ..
Tarena IT Group
[root@svr5 ~]# echo $XX
1234