ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

06-shell

2022-04-01 21:31:37  阅读:205  来源: 互联网

标签:shell 06 ubuntu2004 echo sh END root bash


打印系统信息

root@ubuntu2004:~# bash system_info.sh   #用 . bash不规范当前环境中执行,COLOR会变,其他引用者调用错误值
#!/bin/bash
RED="\E[1;31m"
GREEN="echo -e \E[1;32m"
END="\E[0m"
.  /etc/os-release #当前环境中执行

$GREEN----------------------Host systeminfo--------------------$END
echo -e  "HOSTNAME:     $RED`hostname`$END"
#echo -e  "IPADDR:       $RED` ifconfig eth0|grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' |head -n1`$END"
echo -e  "IPADDR:       $RED` hostname -I`$END"
echo -e  "OSVERSION:    $RED$PRETTY_NAME$END"
echo -e  "KERNEL:       $RED`uname -r`$END"
echo -e  "CPU:         $RED`lscpu|grep '^Model name'|tr -s ' '|cut -d : -f2`$END"
echo -e  "MEMORY:       $RED`free -h|grep Mem|tr -s ' ' : |cut -d : -f2`$END"
echo -e  "DISK:         $RED`lsblk |grep '^sd' |tr -s ' ' |cut -d " " -f4`$END"
$GREEN---------------------------------------------------------$END

 

set -e     设置该选项后,当脚本中任何以一个命令执行返回的状态码不为0时就退出整个脚本

root@ubuntu2004:~# cat aaaa.sh 
#!/bin/bash
set -e
echo "start ..."

chuan

echo 'end ...'
root@ubuntu2004:~# bash aaaa.sh 
start ...
aaaa.sh: line 5: chuan: command not found

set -u     设置该选项后,当脚本在执行过程中尝试使用未定义过的变量时,报错并退出运行整个脚本

root@ubuntu2004:~# cat aaaa.sh 
#!/bin/bash
set -u
echo "start ..."

echo $GOOD

echo 'end ...'
root@ubuntu2004:~# bash aaaa.sh 
start ...
aaaa.sh: line 5: GOOD: unbound variable

1,变量

变量表示命名的内存空间,将数据放在内存空间中,通过变量名引用,获取数据 2,命名要求 区分大小写 不能使程序中的保留字和内置变量:如:if, for 只能使用数字、字母及下划线,且不能以数字开头,注意:不支持短横线 “ - ”,和主机名相反 3,变量的生效范围等标准划分变量类型 普通变量:生效范围为当前shell进程;对当前shell之外的其它shell进程,包括当前shell的子shell 进程均无效 环境变量:生效范围为当前shell进程及其子进程 本地变量:生效范围为当前shell进程中某代码片断,通常指函数
root@ubuntu2004:~# Gexu_chuan=1234  #变量赋值
root@ubuntu2004:~# echo $Gexu_chuan
1234
root@ubuntu2004:~# unset Gexu_chuan
root@ubuntu2004:~# echo $Gexu_chuan
root@ubuntu2004:~# name123=xuchuan    #变量可更改
root@ubuntu2004:~# echo $name123
xuchuan
root@ubuntu2004:~# name123=xuchuan123
root@ubuntu2004:~# echo $name123
xuchuan123

解压缩

tar czf script2.tar.gz .  #压缩
tar xf scripts.tar.gz -C /data2/ #解压缩

打印系统信息

root@ubuntu2004:/data# cat system_info.sh 
#!/bin/bash
COLOR=$[RANDOM%7+31]
. /etc/os-release   #当前环境中执行,就是调用

echo -e "CPU: \c"
echo -e "\E[1;${COLOR}m`lscpu |sed -nr  's#^Model name: +(.*)#\1#p'`\E[0m"

echo -e "Mem: \c"
echo -e "\E[1;${COLOR}m`sed -nr '1s/^.* ([0-9]+.*)/\1/p' /proc/meminfo`\E[0m"


echo -e "sda: \c"
echo -e "\E[1;${COLOR}m`lsblk /dev/sda | grep "^sda" |tr -s " "  |cut -d" " -f4`\E[0m"

echo -n "OS: "
echo -e "\E[1;${COLOR}m'${VERSION}'\E[0m"
root@ubuntu2004:/data# bash system_info.sh 
CPU: 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz
Mem: 3994668 kB
sda: 120G
OS: '20.04.3 LTS (Focal Fossa)'
11382  #子进程中有效

 

sleep 后查看

pstree -p

├─sshd(912)───sshd(1267)─┬─bash(1412)───bash(11382)───sleep(11392)

│ ├─bash(2336)───pstree(11397)

root@ubuntu2004:~# echo $BASHPID
2336

 

用bash 不用 . 的原因 

root@ubuntu2004:/data# bash system_info.sh #COLOR 子进程中的变量
CPU: 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz
Mem: 3994668 kB
sda: 120G
OS: '20.04.3 LTS (Focal Fossa)'
root@ubuntu2004:/data# echo $COLOR
100
root@ubuntu2004:/data# . system_info.sh  #影响当前环境COLOR变量
CPU: 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz
Mem: 3994668 kB
sda: 120G
OS: '20.04.3 LTS (Focal Fossa)'
root@ubuntu2004:/data# echo $COLOR
37

 

标签:shell,06,ubuntu2004,echo,sh,END,root,bash
来源: https://www.cnblogs.com/gxc888/p/16089055.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有