Linux shell变量详解
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。
Shell 脚本
Shell 脚本(shell script),是一种为 shell 编写的脚本程序。
业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。
SHELL 变量
变量(内存空间)
增加脚本的灵活性,适用性
类型:
自定义变量
环境变量(Path)
特殊变量
自定义变量
变量名称规范:
- 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
- 中间不能有空格,可以使用下划线(_)。
- 不能使用标点符号。
- 不能使用bash里的关键字(可用help命令查看保留关键字)。
1 声明变量
# 变量名称=变量值
[root@wei csdn]# name=wei
2 调用变量的值
$变量名称
${变量名称} 变量名称或紧跟数字,字符的时候
输出时,由变量名,必须用双引号
[root@wei csdn]# name=cat
[root@wei csdn]# echo "this is $name"
this is cat
[root@wei csdn]# echo "this is ${name}"
this is cat
[root@wei csdn]# echo "this is ${name}s"
this is cats
3 SHELL变量的值默认全做为字符处理
[root@wei csdn]# a=10
[root@wei csdn]# b=20
[root@wei csdn]# c=a+b
[root@wei csdn]# echo $c
a+b
[root@wei csdn]# a=10
[root@wei csdn]# b=20
[root@wei csdn]# c=$a+$b
[root@wei csdn]# echo $c
10+20
数学运算:
方法1:$(())
[root@wei csdn]# a=10
[root@wei csdn]# b=20
[root@wei csdn]# c=$((a+b))
[root@wei csdn]# echo $c
30
方法2:关键字:let
[root@wei csdn]# a=10
[root@wei csdn]# b=20
[root@wei csdn]# let c=a+b
[root@wei csdn]# echo $c
30
方法3:关键字:declare
[root@wei csdn]# a=10
[root@wei csdn]# b=20
[root@wei csdn]# declare -i c=a+b
[root@wei csdn]# echo $c
30
数学运算符:
+
-
*
/ 整除
% 取余
生成随机数
[root@wei csdn]# echo $RANDOM
11400
[root@wei csdn]# echo $RANDOM
9702
[root@wei csdn]# echo $RANDOM
21328
生成10以内的随机数:
[root@wei csdn]# echo $((RANDOM%10))
4
[root@wei csdn]# echo $((RANDOM%10))
2
4 命令引用
反引号 `COMMAND`
$(COMMAND)
[root@wei csdn]# a=`ls -ldh /etc/`
[root@wei csdn]# echo $a
drwxr-xr-x. 77 root root 8.0K 3月 14 16:23 /etc/
[root@wei csdn]# b=$(ls -ldh /etc/)
[root@wei csdn]# echo $b
drwxr-xr-x. 77 root root 8.0K 3月 14 16:23 /etc/
提取ip
[root@wei csdn]# ifconfig ens33 |grep "netmask" | awk '{print $2}'
192.168.196.131
[root@wei csdn]# head -n 3 /etc/passwd |awk -F: '{print $1,$6,$7}'
root /root /bin/bash
bin /bin /sbin/nologin
daemon /sbin /sbin/nologin
5 删除变量
# unset 变量名称
环境变量
(1)查看环境变量
[root@wei csdn]# env | less
(2)定义环境变量:修改环境变量的值
#export 变量名称=变量值
[root@wei csdn]# vim /etc/profile
[root@wei csdn]# source /etc/profile
$?判断上个命令的执行状态(0--255)
0:代表成功
其余:代表失败

Linux shell变量详解的更多相关文章
- linux shell `符号详解
linux shell `符号详解 <pre>[root@iZ23uewresmZ arjianghu]# echo `ls`asss.html common guaji.php imag ...
- Shell 变量详解教程之位置变量与预定义变量。
Shell 变量分为3部分,分别是用户自定义变量.位置变量和预定义变量. 一. 自定义变量 那么,什么是变量呢?简单的说,就是让某一个特定字符串代表不固定的内容,用户定义的变量是最普通的Shell ...
- Shell 变量详解教程之位置变量与预定义变量
Shell 变量分为3部分,分别是用户自定义变量.位置变量和预定义变量. 一. 自定义变量 那么,什么是变量呢?简单的说,就是让某一个特定字符串代表不固定的内容,用户定义的变量是最普通的Shell ...
- shell变量详解
1 shell变量基础 shell变量是一种很"弱"的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义.所以若要进行数学运算,必须使用一些命令例如let.de ...
- [Z]shell变量详解
原文:http://www.cnblogs.com/barrychiao/archive/2012/10/22/2733210.html 1 shell变量基础shell变量是一种很“弱”的变量,默认 ...
- Linux 环境变量详解
1. $HOME变量从哪里获得的? HOME 本身是 shell 来设置的,你可以自己手工设置(例如使用 bash 的 export),也可以在 shell 的初始化文件中设置(例如 bash 的 . ...
- Linux环境变量详解与应用
在bash shell中,环境变量分为: >全局变量 >局部变量 全局变量,不仅对shell可见,对其子进程也可见 查看预设的全局环境变量: ghostwu@dev:~$ printenv ...
- linux shell 正则表达式详解
正则 1. 普通正则表达式 2. 扩展正则表达式 普通正则表达式 . 任意一个字符 * 前面一个字符出现0次或者多次 [abc] 中括号内任意一个字符 [^abc] 非括号内任意一个字符 [0-9] ...
- Linux主要shell命令详解(上)
[摘自网络] kill -9 -1即实现用kill命令退出系统 Linux主要shell命令详解 [上篇] shell是用户和Linux操作系统之间的接口.Linux中有多种shell,其中缺省使用的 ...
随机推荐
- batch、epoch、iteration
深度学习的优化算法,说白了就是梯度下降.每次的参数更新有两种方式. 第一种,遍历全部数据集算一次损失函数,然后算函数对各个参数的梯度,更新梯度.这种方法每更新一次参数都要把数据集里的所有样本都看一遍, ...
- T430 Linux Setting Memo
touchpad:xinput listxinput --disable 11 dns setting:/etc/resolv.conf vpn:@Darkduck19XX yum-config-ma ...
- 11/6 <bit manipulation>
389. Find the Difference ^ (按位异或): 参加运算的两个数,如果两个相应位为“异”(值不同),则该位结果为1,否则为0. 抵消掉相同的位,剩下的就是多余的位. class ...
- JS判断是否是ioS或者Android
每个客户端都带有自身的UA标识,通过JavaScript,可以获取客户端标识,我们可以获取浏览器的userAgent,用正则来判断手机是ios(苹果)还是Android(安卓)客户端. 项目实例:ht ...
- react 16 渲染整理
背景 老的react架构在渲染时会有一些性能问题,从setstate到render,程序一直在跑,一直到render完成.才能继续下一步操作.如果组件比较多,或者有复杂的计算逻辑,这之间的消耗的时间是 ...
- SWIG 3 中文手册——5. SWIG 基础知识
目录 5 SWIG 基础知识 5.1 运行 SWIG 5.1.1 输入格式 5.1.2 SWIG 输出 5.1.3 注释 5.1.4 C 预处理器 5.1.5 SWIG 指令 5.1.6 解析限制 5 ...
- Kubernetes ingress 上传文件大小限制
1.文件太大 413:Request Entity Too Large 创建 ingress 时添加 annotations(注释) metadata: annotations: nginx.ingr ...
- go-gin-api 规划目录和参数验证(二)
概述 首先同步下项目概况: 上篇文章分享了,使用 go modules 初始化项目,这篇文章咱们分享: 规划目录结构 模型绑定和验证 自定义验证器 制定 API 返回结构 废话不多说,咱们开始吧. 规 ...
- linux安装go环境并编写第一个go程序
1.从官网下载go源码包 wget https://dl.google.com/go/go1.12.5.linux-amd64.tar.gz 2.在/usr/local下解压源码包 sudo tar ...
- Java奇妙之旅day_01
一 .java程序运行原理 1.首先我们下载JDK,它是一组命令行工具,含有编译.调试.和执行java程序所需要的软件和工具. (1)关于下载我们在这不作赘述,在Oracle官方网站直接下载,一直点击 ...