shell脚本变量

目录

1.变量的定义

2.shell脚本中变量的定义方法

3.变量的转译

4.Linux中命令的别名设定

5.用户环境变量的更改

6.利用命令的执行结果设定变量

7.脚本函数


1.变量的定义

1)定义本身

变量就是内存一片区域的地址

2)变量存在的意义

命令无法操作一直变化的目标:用一串固定的字符来表示不固定的目标可以解决此问题

2.shell脚本中变量的定义方法

环境级别

export a=1

在环境关闭后变量失效

 用户级别(只针对当前用户生效)

vim ~/.bash_profile        //shell环境的配置文件

export a=1

source .bash_profile         //使配置文件生效

系统级别

vim /etc/profile                //系统级别的传参

export a=2

source /etc/profile

vim /etc/profile.d/westos.sh                //自定义自配置文件

export b=3

 变量名称

变量名称可包含的字符:字符、_、数字,不能用数字开头

建议变量名称短全用大写字符,变量名称长用_区分子类,如WESTOS、Westos_Linux、westoS_Linux

3.变量的转译

转译

#                       // 转译单个字符
""                           //弱引用,批量转译个数字符 不能转译“\”,“”,“$”,“!”
''                                 //强引用

声明

echo $ab
echo ${a}b

变量的数组

a=(1 2 3 4 5)
a$[a[@]:起始元素id:元素个数]      
echo ${a[0]}                //数组中第一个元素
echo ${a[*]}            //数组中所有元素
echo ${a[@]}                //数组中所有元素
echo ${a[@]:0:3}          //数组中1到3个的元素
echo ${#a[@]}         //数组中元素的个数
unset a[n]                //删除数组中的第n-1个元素
unset a                     //删除a这个数组

4.Linux中命令的别名设定

alias xie='vim' 	//临时设定vim ~/.bashrc            //只针对于用户生效
alias xie='vim' 	    vim /etc/bashrc 	    //针对系统所有用户生效
alias xie='vim'unalias xie 		//删除当前环境中的alias

5.用户环境变量的更改

环境变量:
用户在操作系统时使用到的命令搜索路径

设定方式

vim  ~/.bash_profile
export PATH=$PATH:/mnt        //用户级别vim  /etc/bash_profile
export PATH=$PATH:/mnt            //系统级别

6.利用命令的执行结果设定变量

直接利用命令执行结果

$(),``      //优先执行
TEST=hostname TEST=$(hostname)

脚本中的传参

非交互模式:
$0 is /mnt/test.sh 				//脚本本身
$1 is westos 					//脚本后所输入的第一串字符
$2 is linux
$3 is redhat
$* is westos linux redhat 		//脚本后所输入的所有字符"westos linux redhat"
$@ is westos linux redhat 		//脚本后所输入的所有字符'westos' 'linux' 'redhat'
$# is 3 						//脚本后所输入的字符串个数交互模式传参:
read WESTOS 					//对westos赋值
read -p "please input word:" 	//输出提示语
-s 								//隐藏输入内容

7.脚本函数

定义:
程序的别名

设定方式:
WORD()
{
action1
action2
}

WORD 在脚本中就代表action1 action2这两个动作

练习脚本

sh create_user.sh
Please input username : westos
westos exist < output >> westos is exist > Please input username :
westos not existplease input password : 无回显密码
此用户会自动建立并且密码为提示后设定的密码
并显示 : westos is created
并再次提示 Please input username
Please input username exit
此脚本退出
ACTION()
{
read -p "please input username: " USERNAME
[ "$USERNAME" = "exit" ] && {echo exitexit
}
id "$USERNAME" &> /dev/null && {echo "$USERNAME" is existACTION
}||{echo $USERNAME is not existread -p "please input password: " PASSWORDuseradd $USERNAMEecho $PASSWORD | passwd --stdin $USERNAMEecho $USERNAME is createdACTION
}}
ACTION

实现的功能是添加和删除用户。用户可以选择添加或删除,如果选择删除,会要求输入用户名,然后进行删除;如果选择添加,则先检查用户是否已经存在,如果存在则提示用户已经存在,如果不存在,则要求输入密码,然后创建用户并设置密码。

echo "[d]elete [A]dd"
read -p "please input action:" ACTION
[ "$ACTION"  != "a" -a "$ACTION" != "d" ]  && {echo wrong actionexit
}[ "$ACTION" = "d" ] && {read -p "please input username:" USERNAMEid $USERNAME &> /dev/null && {userdel -r $USERNAMEecho $USERNAME is deleted
}||{echo $USERNAME is not exist
}exit
}[ "$ACTION" = "a" ] && {read -p "please input username:" USERNAMEid $USERNAME &> /dev/null && {echo $USERNAME is exist
}||{read -p "please input password: " PASSWORDuseradd $USERNAMEecho $PASSWORD | passwd --stdin $USERNAMEecho $USERNAME is created
}exit
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/150886.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Sql Server中的表组织和索引组织(聚集索引结构,非聚集索引结构,堆结构)

正文 SqlServer用三种方法来组织其分区中的数据或索引页&#xff1a; 1、聚集索引结构 聚集索引是按B树结构进行组织的&#xff0c;B树中的每一页称为一个索引节点。每个索引行包含一个键值和一个指针。指针指向B树上的某一中间级页&#xff08;比如根节点指向中间级节点中的…

六零导航页SQL注入漏洞复现(CVE-2023-45951)

0x01 产品简介 LyLme Spage&#xff08;六零导航页&#xff09;是中国六零&#xff08;LyLme&#xff09;开源的一个导航页面。致力于简洁高效无广告的上网导航和搜索入口&#xff0c;支持后台添加链接、自定义搜索引擎&#xff0c;沉淀最具价值链接&#xff0c;全站无商业推广…

Druid 任意文件读取 (CVE-2021-36749)

Druid 任意文件读取 &#xff08;CVE-2021-36749&#xff09; 漏洞描述 由于用户指定 HTTP InputSource 没有做出限制&#xff0c;可以通过将文件 URL 传递给 HTTP InputSource 来绕过应用程序级别的限制。攻击者可利用该漏洞在未授权情况下&#xff0c;构造恶意请求执行文件…

【Pytorch】Pytorch学习笔记02 - 单变量时间序列 LSTM

目录 说明简单神经网络LSTM原理Pytorch LSTM生成数据初始化前向传播方法训练模型自动化模型构建 总结参考文献 说明 这篇文章主要介绍如何使用PyTorch的API构建一个单变量时间序列 LSTM。文章首先介绍了LSTM&#xff0c;解释了它们在时间序列数据中的简单性和有效性。然后&…

Chimera:混合的 RLWE-FHE 方案

参考文献&#xff1a; [HS14] S. Halevi and V. Shoup. Algorithms in HElib. In Advances in Cryptology–CRYPTO 2014, pages 554–571. Springer, 2014.[HS15] S. Halevi and V. Shoup. Bootstrapping for HElib. In Advances in Cryptology–EUROCRYPT 2015, pages 641–6…

泛微OA之获取每月固定日期

文章目录 1.需求及效果1.1需求1.2效果 2. 思路3. 实现 1.需求及效果 1.1需求 需要获取每个月的7号作为需发布日期&#xff0c;需要自动填充1.2效果 自动获取每个月的七号2. 思路 1.功能并不复杂&#xff0c;可以用泛微前端自带的插入代码块的功能来实现。 2.将这需要赋值的…

【Linux】解决缓存锁问题:无法获得锁 /var/lib/dpkg/lock-frontend

今天在运行apt-get update更新软件包后&#xff0c;突然发现安装新的软件出现了这个报错&#xff1a;正在等待缓存锁&#xff1a;无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 1855&#xff08;unattended-upgr&#xff09;持有。如图。 这个错误通常是由于其他进程正在…

视频号视频提取小程序,快速下载视频号视频

​视频号提取小程序可以帮助用户方便地从视频号视频平台获取到自己喜欢的视频号内容。通过这个小程序&#xff0c;你可以快速搜索并提取出视频号&#xff0c;并进行相关的操作。 据悉视频下载bot小程序目前已经更名为【提取下载小助手】 使用视频号提取小程序有以下几个步骤&…

Unity Shader当用户靠近的时候会出现吃鸡一样的光墙

效果图片 靠近墙壁 远离墙壁 材质球的设置 两张图片 使用方式 把这个脚本放到墙上&#xff0c;将player赋值给"_player"&#xff0c;然后运行&#xff0c;用户靠近就会根据距离显示光墙。 using UnityEngine;public class NewBehaviourScript : MonoBehaviour {pr…

容联七陌百度营销通BCP解决方案,让营销更精准

百度营销通作为一个快速迭代、满足客户多元化营销需求的高效率营销工具成为众多企业的选择&#xff0c;通过百度营销通BCP对接&#xff0c;企业就可以在百度咨询页接入会话&#xff0c;收集百度来源的访客搜索关键词&#xff0c;通过百度推广获取更多的精准客户&#xff0c;从而…

概念解析 | 功率放大器与低噪声放大器:一场关于信号放大的对比

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:功率放大器(PA)与低噪声放大器(LNA)。 功率放大器与低噪声放大器:一场关于信号放大的对比 一、背景介绍 在现代的通信系统中,功率放大器 (Power Amplifier, PA)与低噪声放…

【数据结构】选择排序

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;浅谈数据结构 &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; 直接选择、堆排序 1. 直接选择排序2…