shell中变量

本文深入讲解Shell脚本的基础知识,包括脚本调用方式、变量定义与分类、环境变量设置、字符转译、变量声明与传递等核心内容,以及如何通过read命令实现变量交互和利用命令结果设定变量。
一、脚本
1、脚本调用方式:
ps -f						 查看进程的依赖关系
sh script.sh				 重新开启一个shell,进行脚本调用,使用重新开启的环境解析
./script.sh==/mnt/script.sh  在当前shell中执行,使用文件中指定的环境解析
source script.sh==. script.sh在当前shell中执行,使用当前环境解析
2、清空日志脚本
#!/bin/bash
line=`sed -n '$=' /etc/rsyslog.conf`
log_file=`grep RULES -A $line /etc/rsyslog.conf | awk -F " " '!/^#/&&!/^$/{print $2}' | sed -e 	's/-//g' -e '/^:/d'`
for i in $log_file
do
    	>$i
    	echo $i is cleaned!!!
done
二、变量:

变量的定义
• 变量即在程序运行过程中它的值是允许改变的量 • 变量是用一串固定的字符来标示不固定的值的一种方法 • 变量是一种使用方便的占位符,用于引用计算机内存地址,该地 址可以存储 Script 运行时可更改的程序信息 • 在 shell 中变量是不能永久保存在系统中的,必须在文件中声明
在 shell 脚本中变量的种类

• 在 shell 中变量分为环境级变量,用户级变量,系统级变量 • 环境级变量只在当前 shell 中生效, shell 关闭变量丢失 • 用户级变量写在用户的骨文件中,只针对当前用户生效 • 系统级变量被写在系统的配置文件 /etc/profile 或 者 /etc/profile.d/ 中,对于所有用户都生效

1、变量分类
export A = 1 					只在当前shell中生效 
~/.bash_profile					普通用户自己的环境变量						
/etc/skel/.bash_profile			超级用户环境变量
/etc/profile					系统环境变量
	evn							查看环境变量
PS1								特殊变量,控制命令行最前边的字符
2、字符的转译及变量的声明
 \ 转译单个字符 
 "" 弱引用,批量转译 "" 中出现的字符
 '' 强引用,批量转译 '' 中出现的字符
 '' 与 "" 两者的区别在于, "" 不能转译 "\","`","!","$" 
 ${} 变量声明 例如:
 			  A=1 echo $Ab 
 			  	  echo ${A}b
 			  a = (1 2 3 4 5)
 			  	  echo ${a[0]}
			  	  echo ${a[*]}
3、变量值传递
$0 脚本本身
$1 脚本后的第一串字符串 
$2 脚本后的第二串字符串 
$3 脚本后的第三串字符串 
$# 脚本后所跟字符串的个数
$* 脚本后跟的所有字符串,模式为“ 1 2 3  “
$@ 脚本后跟的所有字符串,模式为“ 1”“2”“3” 
$$ 脚本执行的PID

实例($*和$@的区别)
$*
在这里插入图片描述
在这里插入图片描述
$@
在这里插入图片描述
在这里插入图片描述

4、read实现变量传递
#!/bin/bash
read -p "please input  ipaddress:" -s IPADDRESS 	-s隐藏输入
echo .....
ping -c1 -w1 $IPADDRESS &> /dev/null && {
	echo $IPADDRESS is up!
} || {
	echo $IPADDRESS ip down!	
}
5、利用命令执行结果设定变量
Hostname=$(hostname) 
Hostname=`hostname` 
$? 是命令在执行完成之后产生的退出值 范围是 [0-255] 
当 $0=0 时标示命令执行没有错误输出 这个值可以用 exit 命令执行 
例如 exit 66 
6、系统中命令别名的设定
alias xie='vim' 				环境级别名设定
vim ~/.bashrc					用户级别名设定
	alias xie='vim' 
vim  /etc/bashrc				系统级别别名设定 
	alias xie='vim' 
unalias xie						删除别名,配置文件中的内容也要删除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值