小猿圈之Linux shell变量

卞喜
• 阅读 393

学习linux的朋友shell不一定要了解多深,但是写linux脚本的朋友那必须对linux shell了如指掌,小猿圈老师从shell基础说起,让我们一起看一下shell变量都有哪些。

1、本地变量
--本地变量是在用户现有的shell生命周期的脚本中使用
--本地变量详解:用户通过终端登录服务器,服务器会创建一个会话期并且启动一个shell程序,用户每登录一次,
就会启动一个shell,所以在一个会话期里可能会启动多个shell程序
当用户在shell程序中定义了一个shell变量,该shell变量的生存周期是用户连接到服务器到用户关闭shell
用户关闭shell可以有两种方法,①切换用户(切换用户时,会关闭当前用户的shell,再次启动另一个shell)
②关闭终端
--variablename=value

定义本地变量:MYVAR="test"  注意"="左右不要有空格,变量的值必须加上双引号,数字可以例外
使用本地变量$MYVAR     用法:echo $MYVAR  或者 echo ${MYVAR}

--set显示本地所有的变量
--readonly variablename定义只读变量
只读变量不能赋值

2、变量替换(显示变量)
--用变量的值替换它的名字
--在变量前加$,使用echo命令可以显示单个变量的值
--echo ${MYVAR} 或者 echo $MYVAR
--${variablename} 显示实际值
--${variablename:+value} 若设置了variablename则显示用户自定义信息value;若未设置variablename,则显示空
--${variablename:?value} 若设置了variablename则显示variablename的值;若未设置variablename,则显示用户自定义信息value(相

                        当于一种提示信息)

--${variablename:-value} 结果同上
--${variablename:=value} 若设置了variablename则显示variablename的值;若未设置variablename,则设置variablename的值为用户

                        自定义信息value,并且显示variablename的值

3、标准变量
--bash默认建立了一些标准环境变量,可在/etc/profile中定于
--HOME 属主目录
--LOGNAME 登录用户名
--TERM 登录服务器,终端类型vt100
--PATH 标准变量
--PS1(数字1) 提示符
echo $PS1 打印[\u@\h \W]\$
u代表用户名 h代表主机名 w代表当前目录
例如:[test@HP-Linux 1]$
--PS2
">" 表示一条命令没有写完,自动换行后,shell提示符,""是续行符
例子:ls -lt\

| wc -w

4、环境变量
--环境变量用于所有用户进程(经常成为子进程)。登录进程称为父进程。shell中执行的用户进程均为子进程。
不像本地变量(只用于现在的 shell),环境变量可用于所有子进程,这包括编辑器、脚本和应用程序。
--$HOME/.bash_profile(/etc/profile,所有用户都使用profile)
--export 声明环境变量 export myvar="ttt"
--env 查看环境变量

5、unset
--清除变量
--unset testvar
--readonly变量不能被清除

6、位置变量
--$1
--详情见 Linux Shell编程一

7、影响变量的命令
--declare 设置或显示变量

-f    只显示函数名
-r    创建只读变量
-x    创建转出变量
-l    创建整数变量

--shife [n] 整体参数左移n个

8、特殊变量
--$# 传递脚本的参数个数(不包含程序本身./runc,这和c语言不同)
--$* 所有的参数列表,次选项参数可以超过9个
--$$ 脚本运行的当前进程ID号
--$| 后台运行的最后一个进程的进程ID号
--$@ 与$#相同,但是使用时加引号,并爱引号中返回每个参数
--$- 显示shell使用的当前选项,与set命令功能相同
--$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误

相信大家对shell变量已经有一个深入的了解了,不管是现在是做linux 脚本的编写的,还是以后要做这个方向的,那shell一定要好好学习,小猿圈老师对shell变量的详解就到这,想要了解更多,可以来小猿圈看一下,一起学习和探讨一下。

点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
芝士年糕 芝士年糕
2年前
Linux shell 内建命令
前言一、shell简介shell是Linux系统中一个提供命名行的交互式工具,本质是一个c语言可执行程序,为用户提供了启动程序,管理文件系统中的文件以及运行在Linux系统上的进程的途径。命令行提示符是shell负责交互的部分,允许用户输入文本命令,然后解释命令,并在内核中执行。Linux系统上有多种shell可用,Linux发行版默认的shell都是ba
Souleigh ✨ Souleigh ✨
4年前
Python 带你来一次说走就走的环球旅行
1、目标场景十一长假,相信大部分的朋友这会应该是在全国各地浪或者是在浪的路上,朋友圈成为你们表演的场所。当然,也有一小戳朋友是
Stella981 Stella981
3年前
Linux菜鸟到老鸟的那些建议
相信很多同学对Linux(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.linuxprobe.com%2Fchapter00.html)的认识并不多,平常接触的也不多,对Linux的开发运维等也是一无所知。如今,如果要做一名优秀的程序猿,掌握Linux知识已经是一门必备技能了
Stella981 Stella981
3年前
Python 带你来一次说走就走的环球旅行
1、目标场景十一长假,相信大部分的朋友这会应该是在全国各地浪或者是在浪的路上,朋友圈成为你们表演的场所。当然,也有一小戳朋友是选择家里蹲,你们是否感觉到无聊?是否想出去浪,参加朋友圈摄影比赛?本篇文章的目的是利用Python带我们实现一次说走就走的环球旅行,完胜这次的朋友圈摄影比赛。2、准备工作
Stella981 Stella981
3年前
Python之OS模块函数
Python中的os模块提供了操作系统相关功能的函数,可以更加方便的在python脚本中对linux的文件目录的处理和shell的应用。os.system("bash")运行shell命令,直接显示应用ls命令查看当前目录下的文件importosprint(os.system('ls'))
Stella981 Stella981
3年前
Linux Shell 脚本
知道脚本的存在,也会偷懒写一点用,但是真的不熟,最近想偷懒用脚本log的方式跑训练程序,所以边查边写,凑合着写了一个能用的。1、基本使用  新建一个文件(run.sh),写上  !/bin/bashthmain.lua  第一行一定要有,不然不能运行。  修改权限:chmodxrun.sh     
Stella981 Stella981
3年前
Linux下shell脚本监控Tomcat的状态并实现自动启动
最近公司需要在Linux下监控tomcat的服务,一旦tomcat服务存在异常或者宕机,重启tomcat保证服务的正常运行,由于Linux下有Shell脚本可以实现此效果,下面是Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤。1.编写Shell脚本monitor.sh!/bin/sh\func:自动监控tomcat脚本
Stella981 Stella981
3年前
Shell 助力开发效率提升
(题图:毕业旅行之决战青海湖)本文主要来源于小组内部的一个小的分享,这里整理成一篇文章po出来. 题目叫“Shell助力开发效率提升”,更切题的应该是叫“命令行”提升开发效率,这里并没有讲到Shell编程,而是主要介绍Linux或者Mac下常用的一些基本工具命令来帮助处理一些日常事务. (其实之前这篇文章Mac软件推荐(续)之
Stella981 Stella981
3年前
Crazy Rockets
前言不知道有多少人和小编一样时不时就被一些小游戏刷屏,这些游戏操作简单,老少皆宜,传播速度非常的快,分分钟霸屏朋友圈。小编也有一个梦想,希望自己有一天也能做出能够霸屏朋友圈的小游戏。但是要做出来一个这样的爆款小游戏可不是一件简单的事情,于是小编开始在网上收集信息,终于发现华为HMSMLKit提供的人脸检测和手部关键点识别可以通过人脸以及手部关
Stella981 Stella981
3年前
Linux中编写Bash脚本的10个技巧
Shell脚本编程是你在Linux下学习或练习编程的最简单的方式。尤其对系统管理员要处理着自动化任务,且要开发新的简单的实用程序或工具等(这里只是仅举几例)更是必备技能。本文中,我们将分享10个写出高效可靠的bash脚本的实用技巧,它们包括:1、脚本中多写注释这是不仅可应用于shell脚本程序中,也可用在其他所有类