首页 > 系统相关 >Linux之shell脚本变量

Linux之shell脚本变量

时间:2024-08-30 15:54:43浏览次数:14  
标签:XH shell 变量 expr echo Linux root 78

变量是脚本种的一种重要的属性,它可以存储值,这就大大的增加了脚本的灵活性使得脚本的应用更为广泛。

自定义变量

变量名=值(等号两边不能有空格)

在linux内可以定义变量然后用$引用如果要在调用后面加字符之类的则可以使用${变量名}字符

环境变量

系统帮你定义好的变量

例如

USER输出本用户的用户名

UID输出本用户的id号

HOME当前用户家目录

SHELL当前用户解释器

PWD当前位置

PS1一级提示符

PS2二级提示符

PATH存储命令路径

删除变量

将自己定义的临时变量删除掉

  1. unset + 变量名

永久定义变量

/etc/profile文件下定义,针对所有用户

/root/.bash_profile文件下定义针对个人用户

位置变量与与定义变量

脚本在有位置变量后不能直接执行需要在执行命令后面添加参数才可以执行。

[root@XH ~]# vim location.sh
#!/bin/bash
#位置变量
echo $1                           #第一个参数
echo $2                           #第二个参数
#预定义变量
echo $0                           #脚本的名称
echo $*                           #所有参数
echo $#                           #所有参数的个数
echo $$                           #当前进程的进程号
echo $?                           #上一个程序的返回状态码
可以检测上一个指令是否成功,成功为0,不成功为非0
[root@XH ~]# chmod +x location.sh     #添加可执行权限

使用位置变量实现快速创建用户及其密码

[root@XH ~]# vim /opt/user.sh
#!/bin/bash
useradd $1
echo "$2" |passwd --stdin $1 

引号

’‘ “:界定范围,屏蔽某些特殊符号的功能

“” :界定范围

“ `` ”反撇或者$() :将明令的执行输出作为变量

read :以交互式交互式创建自定义变量

例如

#!/bin/bash
read -p please with username:  n   #提示输入名称
useradd $n
stty -echo
read -p please with passworld:  m   #提示输入密码
stty echo
echo $m | passwd --stdin $n

stty -echo:屏蔽回显示

stty -echo:不屏蔽显示

发布全局变量

export + 已经定义的变量(类似于python的全局变量)

变量计算

用于做某种计算
expr

或者可以用$[]$(())表达式

[root@XH ~]# X=1234                       #定义变量X
[root@XH ~]# expr  $X  +  78                #加法
1312
[root@XH ~]# expr  $X  -  78                  #减法
1156
[root@XH ~]# expr  $X  \*  78               #乘法,操作符应添加\转义
96252
[root@XH ~]# expr  $X  /  78                #除法,仅保留整除结果
15
[root@XH ~]# expr  $X  %  78               #求模
64
[root@XH ~]# echo $[X+78]
1312
[root@XH ~]# echo $[X*78]
96252

let计算后会赋值,结果不输出,可以变量自增减

bc计算器:可以计算小数

bc sclae=显示小数点后几位 算式

标签:XH,shell,变量,expr,echo,Linux,root,78
From: https://blog.csdn.net/m0_63996800/article/details/141534060

相关文章

  • Linux 高可用仲裁设备配置
    RedHatEnterpriseLinux7.4完全支持配置作为集群的第三方设备的独立仲裁设备。它的主要用途是允许集群保持比标准仲裁规则允许更多的节点故障。建议在具有偶数节点的集群中使用仲裁设备。对于双节点群集,使用仲裁设备可以更好地决定在脑裂情况下保留哪些节点。在配置仲裁设备,......
  • Linux
    1.用户管理1.1用户管理指令增加1)增加useradduseradd选项说明-u指定用户uid-s指定命令解释器,默认是/bin/bash-M不创建家目录[root@hmk888~]#useradd-u1314-s/sbin/nologin-Mmysqlpasswd修改密码passwd选项说明--stdin非交互设......
  • Linux驱动学习之PWM
    PWM介绍他就是一个总周期不变占空比可调制的方波!PWM的基础知识占空比:有效电平/周期周期:周期不用多说,高中正弦,余弦波都学过。分辨率:最小占空比(如把周期分为10份,那分辨率就是10%)Linux下的pwmLinux内核已经集成了pwm底层部分初始化,我们所要做的就是利用他给的接口,设置......
  • Linux驱动学习之input子系统
    简介input子系统就是管理输入的子系统,和pinctrl、gpio子系统一样,都是Linux内核针对某一类设备而创建的框架。按键、鼠标、键盘、触摸屏等都属于输入设备,linux内核为此专门做了一个叫做input子系统的框架来处理输入事件。输入设备本质上还是字符设备,只是在此基础上套上了......
  • PowerShell Select-String:在字符串和文件中查找文本
    语法Select-String[-Culture<String>][-Pattern]<String[]>[-Path]<String[]>[-SimpleMatch][-CaseSensitive][-Quiet][-List][-NoEmphasis][-Include<String[]>][-Exclu......
  • 修改 Linux 默认 Shell 用 chsh -s /bin/zsh 命令不生效,提示 chsh: Shell not changed
    我想现在应该有很多人都已经使用zsh作为默认的Shell了,尤其是搭配oh-my-zsh之后,真是好用得飞起。一般,我们在切换系统默认的Shell的时候,都会使用 chsh-s/bin/zsh 命令来进行修改。今天我遇到一个问题,在某台老服务器上,使用这个命令无法修改,具体原因未知。始终提示——chsh:She......
  • Linux日志的查看方法
    使用cat命令:显示文件内容,适合快速查看文件开头部分或结合管道命令如grep进行过滤。cat/var/log/syslog|greperror使用tail命令:查看文件末尾部分,常用于查看最新的日志信息。-f选项可实时跟踪日志更新。tail-n50/var/log/syslogtail-f/var/log/syslog使用head......
  • 安全:linux禁止响应ping,不使用防火墙
    一,永久性关闭响应ping查看默认是否允许ping:[root@bloggsapi]#cat/proc/sys/net/ipv4/icmp_echo_ignore_all0 说明:(0表示允许,1表示禁止)编辑sysctl.conf[root@bloggsapi]#vi/etc/sysctl.conf增加一行:#ignorepingnet.ipv4.icmp_echo_ignore_all=1使生效:[root......
  • shell脚本实现递归拷贝文件
    shell脚本#!/bin/bashlist=(10.12.63.23210.12.7.9510.12.8.24710.12.9.14610.253.1.19810.38.0.12510.38.0.20510.38.0.4410.38.0.9710.111.8.23410.12.20.1310.12.2.15010.12.3.14310.12.50.17510.12.65.710.12.8.12610.12.8.9010.1......
  • Linux中cd命令的基本用法!
    cd命令是Linux中最常见的命令之一,全拼changedirectory,其命令主要用于切换当前工作目录,本篇文章为大家介绍一下Linux中cd命令的常见用法,一起来看看吧。常见的cd命令用法:1、进入当前工作目录下的目录:cd./2、进入其他目录:cd/home/user/documents/3、......