热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

shell脚本中关于变量的讲解

shell脚本中关于变量的讲解1.变量的定义2.shell脚本中变量的定义方法3.变量的转译4.Linux中命令的别名设定5.用户环境变量的更改6.利用命令的执行结果设定变量7.脚




shell脚本中关于变量的讲解


  • 1.变量的定义
  • 2.shell脚本中变量的定义方法
  • 3.变量的转译
  • 4.Linux中命令的别名设定
  • 5.用户环境变量的更改
  • 6.利用命令的执行结果设定变量
  • 7.脚本函数
  • 不用上网也可以编辑的,markdown编辑器


1.变量的定义

1)定义本身
变量就是内存一片区域的地址
2)变量存在的意义
命令无法操作一直变化的目标
用一串固定的字符来表示不固定的目标可以解决此问题


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

1)环境级别
export a=1
在环境关闭后变量失效
2)用户级别
vim ~/.bash_profile
export a=1
3)系统级别
vim /etc/profile
export a=2
vim /etc/profile.d/westos.sh
export b=3
4)变量名称
"字符" "_" "数字"
不能用数字开头
建议:
变量名称短全用大写字符
变量名称长用_区分子类
WESTOS
Westos_Linux
westoS_Linux



3.变量的转译

1)转译
\ #转译单个字符
"" #弱引用,批量转译个数字符 不能转译"\" "`" "$" "!"
'' #强引用
[root@d mnt]# echo "$$"
3474
[root@d mnt]# ps
PID TTY TIME CMD
3474 pts/0 00:00:00 bash
2)声明
a=1
echo $ab
echo ${a}b
3)变量的数组
a=(1 2 3 4 5)
echo ${a[0]} ##数组中第一个元素
echo ${a[-1]} ##数组中最后一个元素
echo ${a[*]} ##数组中所有元素
echo ${a[@]} ##数组中所有元素
echo ${a[@]:0:3} ##数组中1-3个元素
echo ${#a[@]} ##数组中元素的个数
显示换行
echo -e "OK! \n" # -e 开启转义
echo "It is a test"
OK!
It is a test
显示不换行
echo -e "OK! \c" # -e 开启转义 \c 不换行
echo "It is a test"
OK! It is a test
create_user.sh userfile
userfile用的用户会被全部建立
[root@d mnt]# vim create_user.sh
6 NEIROnG=`awk '{print}' $1`
7 for i in $NEIRONG
8 do
9 useradd $i
10 echo "$i is successfully created!!"
11 done
[root@d mnt]# sh create_user.sh userfile
user1 is successfully created!!
user2 is successfully created!!
[root@d mnt]# id user1
uid=1002(user1) gid=1002(user1) groups=1002(user1)
[root@d mnt]# id user2
uid=1003(user2) gid=1003(user2) groups=1003(user2)



4.Linux中命令的别名设定

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

5.用户环境变量的更改

环境变量:
用户在操作系统时使用到的命令搜索路径
设定方式:
~/.bash_profile
export PATH=$PATH:/mnt
/etc/bash_profile
export PATH=$PATH:/mnt


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

1)直接利用命令执行结果
$()|` ` ##优先执行 ` `通用性好,$()在一些语言中无法使用
TEST=`hostname` TEST=$(hostname)
2)脚本中的传参
非交互模式:
$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赋值
[root@d mnt]# vim lianxi.sh
6 echo -n "enter you name:"
7 read name
8 echo "hello $name,welcome to my program."
[root@d mnt]# sh lianxi.sh
enter you name:haha westos linux
hello haha westos linux,welcome to my program.
read -p "please input word:" word ##输出提示语
read -p "please input word:" -s word ##隐藏输入内容


7.脚本函数

定义:
程序的别名
设定方式:
WORD()
{
action1
action2
}
WORD 在脚本中就代表action1 action2这两个动作






不用上网也可以编辑的,markdown编辑器

安装时需要根据提示安装依赖性,才能正常的使用。
在这里插入图片描述



推荐阅读
  • BashShell作为Linux的指定合作伙伴我们已经再熟悉不过了,使用Bash可以快速编写简单的脚本方便我们的日常比如善用vim,awk和sed三剑客,也可以创建十分复杂的逻辑, ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • mysql自动打开文件_让docker中的mysql启动时自动执行sql文件
    本文提要本文目的不仅仅是创建一个MySQL的镜像,而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动My ... [详细]
  • linux 循环 cpu使用率脚本,Linux Shell脚本监视CPU利用率,达到设置的CPU利用率时发送电子邮件...
    有很多开源监控工具可用于监控Linux系统性能,当系统达到给定的阈值限制时,它将发送电子邮件警报。它监视CPU利用率、内存利用率、交换利用率、磁盘空间利 ... [详细]
  • 转载请注明出处:http:blog.csdn.netl1028386804articledetails78666356直接上代码:#!binsh##j ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • PHP反射API的功能和用途详解
    本文详细介绍了PHP反射API的功能和用途,包括动态获取信息和调用对象方法的功能,以及自动加载插件、生成文档、扩充PHP语言等用途。通过反射API,可以获取类的元数据,创建类的实例,调用方法,传递参数,动态调用类的静态方法等。PHP反射API是一种内建的OOP技术扩展,通过使用Reflection、ReflectionClass和ReflectionMethod等类,可以帮助我们分析其他类、接口、方法、属性和扩展。 ... [详细]
  • 本文介绍了在Go语言中可见性与scope的规则,包括在函数内外声明的可见性、命名规范和命名风格,以及变量声明和短变量声明的语法。同时,还介绍了变量的生命周期,包括包级别变量和局部变量的生命周期,以及变量在堆和栈上分配的规则和逃逸分析的概念。 ... [详细]
  • 其实之前也有下载过完整的android源码,但是从来没有对这个做过一些总结,在加上最近需要经常去看,索性就在从新下载,编译一下,其实这些东西官网上面都有。http:sou ... [详细]
  • python3.7 安装pip3_python3的pip3安装
    ---恢复内容开始---pip3的安装需要对应一整套python的编译工具库,所以安装好的pip3是这个样子:inearAi:~$pip3-Vpi ... [详细]
  • 下载了一个东西想看一下摘要是否正确,但是cmd没有这个小工具,只好用Ubuntu来辅助一下,在右键菜单内加入一个选项叫”在这里打开Ubuntu”,期望是点下去后打开wsl然后工作目 ... [详细]
  • Linux 文本处理利器--Awk常用命令
    简介:在LinuxUNIX系统中,awk是一个功能强大的编辑工具,逐行读取输入文本,并根据指定的匹配模式进行查找,对符合条件的内容进行格式化输 ... [详细]
author-avatar
mobiledu2502884523
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有