Linux入门(十六)shell&shell变量&设置环境变量&位置参数变量&预定义变量

shell简介

shell是一种命令行解释器,为用户提供与操作系统内核交互的界面。它接收用户输入的命令,解释并执行它们,然后返回结果。Shell 既可以是命令行界面(CLI),也可以是图形用户界面(GUI)

脚本格式要求

1、以#!/bin/bash 开头

2、脚本需要执行权限

创建一个shell脚本

bash 复制代码
cd root
mkdir test_shell_code
cd test_shell_code
vi hello.sh
#!/bin/bash
echo "hello world"

执行脚本

bash 复制代码
#绝对路径
/root/test_shell_code/hello.sh
#相对路径
./hello.sh

有两种方式

1、给所有者执行权限

bash 复制代码
chmod u+x hello.sh
./hello.sh

2、用sh +文件名运行

bash 复制代码
 #移除所有者的执行权限
 chmod u-x hello.sh
 sh hello.sh

shell 变量分为:系统变量、用户自定义变量

系统变量:HOME PATH $USER

$USER 当前登录的用户名

$PATH 可执行文件的搜索路径(用冒号分隔)

$PWD 当前工作目录

$OLDPWD 上一次的工作目录

$SHELL 当前使用的 Shell 程序路径

$UID 当前用户的 UID

$HOSTNAME 系统的主机名

$LANG 当前语言和字符编码设置

$PS1 定义 Shell 提示符的格式

$RANDOM 生成一个随机数(0-32767)

$? 上一条命令的退出状态(0 表示成功,非 0 表示失败)

当前 Shell 进程的 PID $! 后台运行最后一个进程的PID $0 当前脚本或 Shell 的名称 $1, $2, ... 脚本的参数($1 是第一个参数, 0 是脚本名) 10 以上的参数需要用 0 是脚本名)10以上的参数需要用 0是脚本名)10以上的参数需要用{10} $# 脚本的参数个数 $\* 或 @ 所有脚本参数( @ 所有脚本参数( @所有脚本参数(\* 合并为一个字符串,$@ 保留各参数独立性)。 **shell 变量的规则** 1、变量的名称可以由字母、数字、下划线组成 但是不能以数字开头 2、定义变量等号两边不能有空格 3、变量的名称一般习惯大写 ```bash cd /root/test_shell_code vi var.sh #!/bin/bash #定义变量A A=100 #输出变量需要加$ echo "A=$A" echo A = $A #撤销变量A unset A echo A=$A #设置只读常量 不能被unset readonly B=100 echo B=$B unset B C=`date` echo C=$C D=$(date) echo D=$D ``` ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4e31e510e5ec4cb88859a65d46a1d160.png) **设置环境变量** 级别语法 export 变量名=变量值 source 配置文件 echo $变量名 ```bash #查看tomcat 的安装位置 ps -aux | grep tomcat vi /etc/profile export TOMCAT_HOME TOMCAT_HOME='/usr/share/tomcat' #修改文件之后一定要重新生效 source /etc/profile #使用TOMCAT_HOME变量 同样也可以在sh文件里使用 echo $TOMCAT_HOME ``` ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1b7436c9b52e42fea7c030a543b47785.png) shell脚本的多行注释 :\<\

相关推荐
可可嘻嘻大老虎1 天前
nginx无法访问后端服务问题
运维·nginx
JiMoKuangXiangQu1 天前
ARM64 进程虚拟地址空间布局
linux·arm64 虚拟地址布局
阳光九叶草LXGZXJ1 天前
达梦数据库-学习-47-DmDrs控制台命令(LSN、启停、装载)
linux·运维·数据库·sql·学习
无忧智库1 天前
某市“十五五“地下综合管廊智能化运维管理平台建设全案解析:从数字孪生到信创适配的深度实践(WORD)
运维·智慧城市
春日见1 天前
如何避免代码冲突,拉取分支
linux·人工智能·算法·机器学习·自动驾驶
珠海西格1 天前
“主动预防” vs “事后补救”:分布式光伏防逆流技术的代际革命,西格电力给出标准答案
大数据·运维·服务器·分布式·云计算·能源
无垠的广袤1 天前
【VisionFive 2 Lite 单板计算机】边缘AI视觉应用部署:缺陷检测
linux·人工智能·python·opencv·开发板
阿波罗尼亚1 天前
Kubectl 命令记录
linux·运维·服务器
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.1 天前
Keepalived单播模式配置与实战指南
linux·服务器·负载均衡
IDC02_FEIYA1 天前
Linux文件搜索命令有哪些?Linux常用命令之文件搜索命令find详解
linux·运维·服务器