首页 > 其他分享 >3_变量

3_变量

时间:2023-10-16 18:34:40浏览次数:44  
标签:aaa 变量 kvm echo sh root bash

一.变量

1.自定义变量
1.定义变量:变量名=变量值
# 变量名不能是纯数字 等号两边不能有空格 值里面有空格必须用引号包起来
name="niubi666"

2.引用变量 $变量名
echo $name
niubi666

3.重复定义变量
  1)  aaa=123
      aaa=1122
      echo $aaa
      1122
      值会被覆盖
  2)
      aaa="$aaa"3344  // aaa="${aaa}"5566
      echo $aaa       // echo $aaa
      11223344        // 112233445566
      给原来的值追加新的值的两种方式
4.变量查看
echo $变量名
set | grep 变量名

5.删除变量
unset 变量名

6.练习编写一个根据IP测试对方主机是否在线的脚本ping.sh
#!/bin/bash
read -p "请输入ip" num
ip=$num
ping -c1 $ip &> /dev/null && echo $ip upupup || echo $ip downdown

[root@kvm ~]# bash ping.sh
请输入ip10.10.11.197
10.10.11.197 upupup
[root@kvm ~]#

7.交互式定义变量
read -p "提示内容" 变量名

read -p "请输入ip" num
# 请输入ip
8.三种引号
# ""  弱引用
# ''  强引用
# ``  优先执行
2.整数运算
1.expr
expr 1 + 2

#!/bin/bash
read -p "请输入第一门成绩" num1
read -p "请输入第二门成绩" num2
echo "总成绩是:" `expr $num1 + $num2`
[root@kvm ~]# bash sum.sh
请输入第一门成绩998
请输入第二门成绩965
总成绩是: 1963

2.$((1 + 2))

#!/bin/bash
read -p "请输入第一门成绩" num1
read -p "请输入第二门成绩" num2
echo -n "总成绩是:" $(($num1 + $num2))
[root@kvm ~]# bash sum.sh
#请输入第一门成绩998
#请输入第二门成绩965
#总成绩是: 1963

3.$[1+2]

[root@kvm ~]# $[1+2]
-bash: 3: command not found
[root@kvm ~]# $[ 1 + 2 ]
-bash: 3: command not found
[root@kvm ~]# $[1 + 2]
-bash: 3: command not found
[root@kvm ~]# $[5 ** 2]
-bash: 25: command not found

4.let sum=2+3
echo $sum

[root@kvm ~]# let aaa=2+3
[root@kvm ~]# echo $aaa
5

let i++ echo $i
1

3.小数运算
先装bc
yum install -y bc
[root@kvm ~]# echo "2*4" |bc
8
[root@kvm ~]# echo "2*4" | bc
8
[root@kvm ~]# echo "2^4" | bc
16

echo "scale=小数点后几位;6/4" | bc

[root@kvm ~]# echo "scale=5;6/4" | bc
1.50000

4.环境变量
export #变量  这个声明表示该变量成为环境变量 适用范围 本shell和子shell
[root@kvm ~]# ls -a
.   aaa.sh         .bash_logout   .bashrc  createVM.sh  .lesshst  .pip  sum.sh   .viminfo
..  .bash_history  .bash_profile  .cache   .cshrc       ping.sh   .ssh  .tcshrc  .wget-hsts

 .bash_profile #这个文件按登录自启动文件 在这里声明的变量 当前用户的 所有bash 均可使用
 /etc/profile #这个文件按开机自启动文件 在这里声明的变量 所有用户的 所有bash 均可使用


5.位置变量
 $1 $2 .... $9
[root@kvm ~]# cat sum.sh
#!/bin/bash
echo -n "平均成绩是:"
echo "($1 + $2)/2" | bc

[root@kvm ~]# bash sum.sh 60 70
平均成绩是:65


6.预定义变量
$0 #代表脚本名称
$* #显示本脚本所有参数
$# #显示当前脚本参数的个数
$? #上一个程序的返回值 布尔值 0 成功 非零 失败
$$ #显示当前脚本的PID
7.练习 编写一个自动添加用户并设置初始密码的脚本 add.sh
#!/bin/bash
useradd $1
echo "123" | passwd --stdin $1 # 初始密码123
bash add.sh admin
成功!

标签:aaa,变量,kvm,echo,sh,root,bash
From: https://www.cnblogs.com/ckh2023/p/17768060.html

相关文章

  • 多线程编程同步:互斥锁和条件变量
    多线程同步怎样同步多个线程或多个进程的活动?为允许在线程或进程间共享数据,同步通常是必需的。而互斥锁和条件变量是同步的基本组成部分。互斥锁用于保护临界区(criticalregion),以保证任何时刻只有一个线程在执行其中的代码,或者任何时刻只有一个进程在执行其中的代码。互斥......
  • 在Vite项目中使用scss创建全局变量
    配置这个也就是配置全局scss的过程,在vite.config.ts的defineConfig中添加属性,其中additionalData为scss中引入文件的书写方式://scss全局变量的配置css:{preprocessorOptions:{scss:{javascriptEnabled:true,additionalData:'@import"......
  • 哈希 + 变量 + 存储
    哈希码哈希值、哈希码:hashCode()方法返回的是一个整数值,称为哈希码(HashCode),存在的主要意义是在散列表(HashTable)等数据结构中帮助快速定位对象其他存在意义:快速查找,散列集合(散列表(例如HashMap、HashSet)等集合使用哈希码来实现元素的快速检索通过哈希......
  • 2023_10_15_DAY_01_JAVA_SE_Java基础知识_中_变量与运算符
    2023_10_15_DAY_01_JAVA_SE_Java基础知识_中_变量与运算符标识符、关键字和保留字标识符在Java语言中,通过标识符来表示一些元素的名字,比如变量名、类名、方法名和包名等。Java中的标识符要符合下面的规则:标识符必须以字母、下划线(_)、数字或美元($)组成;标识符必须由字母、下......
  • 解析“字符指针变量,数组指针变量,二维数组”
    1.字符指针变量字符指针变量是存放地址的charch='w'; char*pc=&ch; *pc='w';表达式的两个属性:【值属性】计算后的值是多少【类型属性】类型是什么注:hello是常量字符串,不能被修改,是连续存放的,可用printf("%s\n",p);打印字符串。常量字符串指的是在程序中声明的一个不......
  • Matlab simulink常见问题和数据导出到变量区
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • Go 代码块与作用域,变量遮蔽问题详解
    Go代码块与作用域详解目录Go代码块与作用域详解一、引入二、代码块(Block)2.1代码块介绍2.2显式代码块2.3隐式代码块2.4空代码块2.5支持嵌套代码块三、作用域(Scope)3.1作用域介绍3.2作用域划定原则3.3标识符的作用域范围3.3.1预定义标识符作用域3.3.2包代码块级......
  • 07变量.md
    变量变量即可以变化的量Java是一种强类型语言,每个变量都必须声明其类型。Java变量是程序中最基本的储存单元,其要素包含变量名,变量类型和作用域。typevarName[=value][{,varName[+varName]}];//数据类型变量名=值;可以使用逗号隔开来声明多个同类型变量......
  • linux学习记录(管道、环境变量与常用命令) 10.14~10.15
    管道;类似文件重定向第一个命令的标准输出至第二个命令的标准输入,第二个文件的标准输出至第三个命令的标准输入(1)只会处理stdout标准输出,stderr会忽略(2)管道右边的命令必须能接受stdin(有些指令如:rmtmp-r接收的是文件参数)(3)多个管道命令可以串联 与文件重定向的区别:文件重......
  • 浅谈MDK, IAR,CLANG和GCC的局部变量字节对齐处理差异(2023-10-13)
    视频:https://www.bilibili.com/video/BV1CB4y1Z7kA问题由来:早期这个帖子里面的局部变量对齐仅测试了MDKAC5,但项目中使用AC6发现了新问题,看来AAPCS规约研究的还是不够细:https://www.armbbs.cn/forum.php?mod=viewthread&tid=109400当时对局部变量的描述如下:局部变量使用的是......