Linux下的变量、系统别名和退出值

xiaoxiao2021-03-01  13

######1、shell中的变量 ######父进程结束后,子进程还未结束,会由初始化进程接管 ######父进程和子进程都结束后,还存在的进程成为僵尸进程,会一直占用系统空间使得系统崩溃 ######(1)环境级

[root@desktop mnt]# a=1 [root@desktop mnt]# echo $a 1 [root@desktop mnt]# ps [root@desktop mnt]# sh sh-4.2# echo $a sh-4.2# exit exit

#######sh打开另一个进程,看不到a值

[root@desktop ~]# export a=1 #export作声明 [root@desktop ~]# echo $a 1 [root@desktop mnt]# sh sh-4.2# echo $a 1 [root@desktop ~]# su - student [student@desktop ~]$ echo $a #为空

#######export声明后,sh打开另一个进程,可以看到a值

######(2)用户级

[root@desktop ~]# vim .bash_profile export a=2 [root@desktop ~]# source .bash_profile #刷新 [root@desktop ~]# echo $a 2 [root@desktop ~]# su - student [student@desktop ~]$ echo $a #为空

######(3)系统级

[root@desktop ~]# vim /etc/profile export a=3 [root@desktop ~]# source /etc/profile [root@desktop ~]# echo $a 3 [root@desktop ~]# exit [root@desktop ~]# echo $a #显示的是用户级的变量,这是因为用户级配置文件后被加载,所以其生效 2

#####2、环境变量

[root@desktop ~]# echo $PS1 [\u@\h \W]\$ [root@desktop ~]# PS1='westos>' westos>PS1='westos\u>' westosroot>PS1='westos \u>' westos root>PS1='westos \w>' #绝对路径 westos ~>cd /etc/sysconfig/ westos /etc/sysconfig>PS1='westos \W>' #相对路径 westos sysconfig>exit logout

######3、变量的转义 ######\是单个的,""是批量的, ######’'为\的批量,称为强引用,可以引用所有字符,包括!、\、`、KaTeX parse error: Expected 'EOF', got '#' at position 349: …=/dissolve/70) #̲#####4、变量值的传递 #…n 脚本后跟的第n串字符 ######KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲ 脚本后所跟字符数的个数 ##…* 脚本后跟的所有字符串,其后字符默认为一串 ######$@ 脚本后跟的所有字符串,其后字符默认为三串 #######实验:利用脚本使用用户和密码文件建立用户,当文件不够时给出提醒

[root@desktop mnt]# vim password [root@desktop mnt]# vim username [root@desktop mnt]# vim user.sh #!/bin/bash [ "$#" -ne "2" ]&&{ echo -e "\033[31mPlease give me userfile and passwordfile\033[0m" #显示字体为红色 exit 1 } #当脚本执行是其后字符数不等于2时提醒 MAX_LINE=`wc -l $1|cut -d " " -f 1` for LINE_NUM in `seq 1 $MAX_LINE` do USERNAME=`sed -n "${LINE_NUM}p" $1` PASSWORD=`sed -n "${LINE_NUM}p" $2` useradd $USERNAME echo $PASSWORD | passwd --stdin $USERNAME done

#######测试: ######5、read实现变量传递 #######实验:交互式判断ip是否可以ping通

[root@desktop mnt]# vim read.sh read -p "Please input ip: " -s ip #-p表示提示,-s表示用户输入时内容不可见 ping -c1 -w1 $ip &> /dev/null && echo It is up || echo It is down

#######可以看到,加了-s后,输入时内容不可见 #######实验:利用脚本建立用户,交互式输入用户文件和密码文件,当文件不存在时给出提醒

[root@desktop mnt]# vim user.sh #!/bin/bash read -p "Please input userfile: " userfile [ -e "$userfile" ]||{ echo -e "\033[31mThis file is not exit!\033[0m" exit 1 } read -p "Please input passfile: " passfile [ -e "$passfile" ]||{ echo -e "\033[31mThis file is not exit!\033[0m" exit 1 } MAX_LINE=`wc -l $userfile|cut -d " " -f 1` for LINE_NUM in `seq 1 $MAX_LINE` do USERNAME=`sed -n "${LINE_NUM}p" $userfile` PASSWORD=`sed -n "${LINE_NUM}p" $passfile` useradd $USERNAME echo $PASSWORD | passwd --stdin $USERNAME done

#######测试: ######6、系统中命令别名的设定

[root@desktop ~]# alias xie='vim' #临时设定别名 [root@desktop ~]# xie file [root@desktop ~]# su - student [student@desktop ~]$ xie bash: xie: command not found... [student@desktop ~]$ exit logout [root@desktop ~]# vim .bashrc #root用户永久设定别名 [root@desktop ~]# source .bashrc [root@desktop ~]# xie file [root@desktop ~]# su - student [student@desktop ~]$ xie bash: xie: command not found... [student@desktop ~]$ exit logout [root@desktop ~]# vim /etc/bashrc #系统永久设定别名 [root@desktop ~]# source /etc/bashrc [root@desktop ~]# xie file [root@desktop ~]# su - student [student@desktop ~]$ xie file

[root@desktop ~]# vim .bashrc #取消设定别名 [root@desktop ~]# vim /etc/bashrc [root@desktop ~]# source .bashrc [root@desktop ~]# source /etc/bashrc [root@desktop ~]# xie file #删除文件中的设定行仍然成立,因为原有的设定不会被覆盖 [root@desktop ~]# unalias xie #撤销命令别名设定 [root@desktop ~]# xie file

######7、exit退出值 ######利用命令执行结果设定变量 ######KaTeX parse error: Expected 'EOF', got '#' at position 29: …退出值,范围是[0-255] #̲#####?=0时表示命令执行没有错误输出,这个值可以用exit命令执行,如exit66 #######实验:利用退出值判断ip是否通

[root@desktop mnt]# vim ip_check.sh read -p "Please input ip: " ip ping -c1 -w1 $ip &> /dev/null B="$?" #返回值赋给B echo exit="$B" [ "$B" -eq "0" ]&&{ #退出值等于0时表示通 echo "$ip is up" }||{ echo "$ip is down" }

#######测试:

转载请注明原文地址: https://www.6miu.com/read-3650324.html

最新回复(0)