shell基础--shell特殊变量
一.变量列表
二.实验
系统:centos 7
1.特殊变量
[root@~_~ day2]# cat p.sh
#!/bin/bash
echo '$0:'$0
echo '$*:'$*
echo '$@:'$@
echo '$#:'$#
echo '$1$2$3:' $1$2$3
[root@~_~ day2]# sh p.sh a b c d
$0:p.sh
$*:a b c d
$@:a b c d
$#:4
$1$2$3: abc
2.$$
[root@~~ day2]# echo $$
1974
3.shift命令: 移位位置参数,重命名位置参数 $N+1、$N+2 ... 到 $1、$2 ... 如果没有给定 N,则假设为1。每次移动之后$#会少N
(1).例子一,移动位置变量
[root@~_~ day3]# cat r.sh
#!/bin/bash
until [ $# -eq 0 ]
do
echo "the first value is:$1 the number of values is:$#"
shift
done
[root@~_~ day3]# sh r.sh 1 2 3 4 5
the first value is:1 the number of values is:5
the first value is:2 the number of values is:4
the first value is:3 the number of values is:3
the first value is:4 the number of values is:2
the first value is:5 the number of values is:1
(2).例子二,利用shift移位进行累加
[root@~_~ day3]# cat s.sh
#!/bin/bash
sum=0
until [ $# -eq 0 ]
do
sum=`expr $sum + $1`
shift
done
echo "sum is:$sum"
[root@~_~ day3]# sh s.sh 1 2 3 4 5
sum is:15
注意:以上的位移量都是1,位移量大于1时,输入参数个数的不同,可能会有逻辑错误。
shell基础--shell特殊变量的更多相关文章
- 『忘了再学』Shell基础 — 11、变量定义的规则和分类
目录 1.定义变量的规则 2.变量的分类 1.定义变量的规则 在定义变量时,有一些规则需要遵守 变量名称可以由字母.数字和下划线组成,但是不能以数字开头.如果变量名是2name则是错误的. 在Bash ...
- 『忘了再学』Shell基础 — 21、变量的测试与内容置换
目录 1.什么是变量的测试与内容置换 2.变量的测试与内容置换 3.示例 例1: 例2: 例3: 1.什么是变量的测试与内容置换 我们之前说过,在Shell中,一个变量未定义,和一个变量为空值的输出效 ...
- Linux学习笔记(16)shell基础之Bash变量
1. 用户自定义变量 (1)变量设置规则 ① 变量名称可由字母.数字和下划线组成,但不能以数字开头: ② 变量的默认类型为字符串类型,如果要对数值运算,则必须指定变量类型为数值型: ③ 变量用等号连接 ...
- shell基础--字符串和变量的操作
一.统计字符串长度 1.wc –L [root@~_~day4]# echo "hello" | wc -L 5 2.expr length string [root@~_~day ...
- shell基础:环境变量
子shell是在父shell中打开的shell. 使用pstree查看进程树. $调用环境变量 set查看所有变量内容, env查询环境变量 只是临时改变
- shell基础:位置参数变量
位置参数名称,作用不变.变得是传入参数. 抽象问题,大多为年长资格老师少数年轻老师,故而问的技术细节少,抽象理论知识多,比如什么是软件工程,问什么会有软件工程.有事注重的是品质,有的注重出身. 每种都 ...
- shell基础:用户自定义变量
- Linux Shell基础 Shell基本知识
概述 在 Linux 的脚本中,只要是基于 Bash语法写的Shell脚本第一行必须是"#!/bin/bash",用来声明此文件是一个脚本. 运行方式 Shell 脚本的运行主要有 ...
- Linux Shell基础 Shell的输入重定向和输出重定向
概述 在 Linux 中输入设备指的是键盘,输出设备指的是显示器.在 Linux 中,所有的内容都是文件,计算机硬件也是文件,标准输入设备(键盘)和标准输出设备(显示器)也是文件.这些设备的设备文件名 ...
随机推荐
- 使用crontab调度任务
复杂的.分布式的.工作流式的调度可以通过azkaban来进行调度,除了执行调度任务之外,它还能进行定时调度.而对于简单的服务器任务,如执行一个小脚本,发送邮件等,可以使用crontab命令直接进行,在 ...
- 云服务器部署mongodb
我喜欢用简单的方法 步骤 下载 解压并运行 远程连接测试 下载 到官方下载页获取下载地址,如图 在云服务器上,使用命令curl 你的地址 -o mongodb.tgz ,下载到当前目录,转到下一步. ...
- 解决:maven 项目添加 pom 的 oracle 依赖
前言:maven 项目需要在 pom 文件中添加 oracle 的依赖. 如果报错:报找不到驱动:java.lang.ClassNotFoundException: oracle.jdbc.drive ...
- css3 3d正反面翻转
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- swiper h5学习
http://www.swiper.com.cn/ 较多用于移动端
- cookie封装函数与使用方法(转)
函数封装: var Cookie = function(name, value, options) { // 如果第二个参数存在 if (typeof value != 'undefined') { ...
- 全平台 Chrome 浏览器 44.0.2403.89 版本下载
全平台 Chrome 浏览器 44.0.2403.89 版本发布 详细更新日志请参见:https://chromium.googlesource.com/chromium/src/+log/43.0. ...
- UltraPtr下拉刷新
github: https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh <in.srain.cube.views.ptr.PtrF ...
- svn 同步资源库时忽略某些文件类型和文件夹
项目开发中,开发人员经常用SVN来管理代码,在和服务器同步时,每次都看到一堆.class,.log,target等文件,这样很不舒服. 解决方法: 打开:window-->preferences ...
- 网站源IP暴露使用高防之后还行不行如何解决?
如题:使用高防后源站IP暴露的解决办法 在购买高防IP后,如果还存在攻击绕过高防直接打到源站IP的情况,就需要更换下源站IP了.但在这之前,请务必排查确认没有其他可能暴露源站IP的因素后,再去更换源站 ...