shell快速入门
$? 表示上一个命令退出的状态,0表示执行正常,不等于0表示执行不正常。
$$ 表示当前进程编号
$ 表示当前脚本名称
$# 表示参数的个数,常用于循环
$*和$@ 都表示参数列表
$n 表示n位置的输入参数(n代表数字,n>=)
传递参数这个和c语言等是一样的。类似与下面这样。
./test.sh
接受参数像下面这样处理
#分别表示第一个参数,第二个参数,第三个参数
inputfile1=$
inputfile2=$
inputfile3=$
read:
#!/bin/bash
read -p "请输入你的名字:" name
echo $name
for循环
#下面这两种形式
#!/bin/bash
for N in
do
echo $N
done for((i=;i<=;i++))
do
echo "weclome $i"
done
while循环
#!/bin/bash
i=
while((i<=))
do
echo "welcome $i"
let i++
done
case匹配
#!/bin/bash case $ in
start)
echo "starting"
;;
stop)
echo "stoping"
;;
*)
echo "没有匹配的"
esac
if判断
#!/bin/bash read -p "请输入用户名" NAME
printf '%s\n' $NAME
if [ $NAME = root ]
then
echo "欢迎你 ${NAME}"
elif [ $NAME = magic ]
then
echo "欢迎你,${NAME}"
else
echo "你是谁,滚犊子"
fi
比较
# 字符串比较 -lt 小于
-le 小于等于
-eq 等于
-gt 大于
-ge 大于等于
-ne 不等于 -e 判断对象是否存在
-d 判断对象是否存在,并且为目录
-f 判断对象是否存在,并且为常规文件
-L 判断对象是否存在,并且为符号链接
-h 判断对象是否存在,并且为软链接
-s 判断对象是否存在,并且长度不为0
-r 判断对象是否存在,并且可读
-w 判断对象是否存在,并且可写
-x 判断对象是否存在,并且可执行
-O 判断对象是否存在,并且属于当前用户
-G 判断对象是否存在,并且属于当前用户组
-nt 判断file1是否比file2新 [ "/data/file1" -nt "/data/file2" ]
-ot 判断file1是否比file2旧 [ "/data/file1" -ot "/data/file2" ]
字符串
#获取字符串长度
string="abcd"echo ${#string} #输出 #提取子字符串
#以下实例从字符串第 个字符开始截取 个字符:
string="turtle is a great site"echo ${string::} # 输出 le #查找子字符串
#查找字符 i 或 o 的位置(哪个字母先出现就计算哪个):
string="runoob is a great site"
echo `expr index "$string" io`
# 输出
数组
()定义数组
#在 Shell 中,用括号来表示数组,数组元素用"空格"符号分割开。
array_name=(value0 value1 value2 value3) ()读取数组
读取数组元素值的一般格式是:
${数组名[下标]}
例如
valuen=${array_name[n]}
#使用 @ 符号可以获取数组中的所有元素:
echo ${array_name[@]} ()获取数组的长度
获取数组长度的方法与获取字符串长度的方法相同,例如:
# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
函数
#!/bin/bash
function print_msg {
echo "Hello, World"
}
print_msg #或
print_msg() {
echo "Hello, World"
}
print_msg
案例一
进度条:
#!/bin/sh
b=''
for ((i=;$i<=;i+=))
do
printf "progress:[%-50s]%d%%\r" $b $i
sleep 0.1
b=#$b
done
echo [root@ngsocdev13 ~]# sh print200.sh
progress:[##################################################]%
shell快速入门的更多相关文章
- Shell 快速入门(十八):特殊符号的使用
在 Shell 语言中,经常会看到中括号和括号组成的特殊标识,例如:[].[[]].(()).$(()).().这些符号经常使我们非常迷惑,弄清楚它们之间的作用和区别非常必要. 在开始之前,我们先来学 ...
- Linux Bash Shell 快速入门
BASH 的基本语法 最简单的例子 —— Hello World! 关于输入.输出和错误输出 BASH 中对变量的规定(与 C 语言的异同) BASH 中的基本流程控制语法 函数的使用 2.1 ...
- Linux Bash Shell快速入门 (三)
forfor 循环结构与 C 语言中有所不同,在 BASH 中 for 循环的基本结构是: for $var in dostatmentsdone 其中 $var 是循环控制变量, 是 $var 需要 ...
- shell 快速入门
1: 脚本开始行 #!/bin/bash 这一行表明,不管用户选择的是那种交互式shell,该脚本需要使用bash shell来运行. 由于每种shell的语法大不相同,所以这句非常重要. 2:变量 ...
- 1.shell快速入门
shell是什么?shell是一个命令行解释器,它提供了一个像linux内核发送请求以便运行程序的界面系统程序,用户可以用shell来启动.挂起.停止甚至是编写一些程序.说白了,shell就是用来和内 ...
- Linux Bash Shell快速入门 (二)
BASH 中的变量介绍BASH 中的变量都是不能含有保留字,不能含有 "-" 等保留字符,也不能含有空格. 简单变量在 BASH 中变量定义是不需要的,没有 "int i ...
- Linux Bash Shell快速入门(一)
BASH 的基本语法· 最简单的例子 —— Hello World! · 关于输入.输出和错误输出 · BASH 中对变量的规定(与 C 语言的异同) · BASH 中的基本流程控制语法 · 函数的使 ...
- 一文快速入门Shell脚本_了解Sheel脚本基本命令
通过代码和注释的形式,列举了shell的基础操作,快速入门.shell在线编辑器 注释 单行用#号:多行::<<' 多行注释... '.:<<a 多行注释... a.:< ...
- Spark快速入门 - Spark 1.6.0
Spark快速入门 - Spark 1.6.0 转载请注明出处:http://www.cnblogs.com/BYRans/ 快速入门(Quick Start) 本文简单介绍了Spark的使用方式.首 ...
随机推荐
- 百度小程序-图片画廊-使用previewImage方法实现
.swan <!-- 轮播图 S--> <view class="swiper-box"> <swiper style='height:{{swipe ...
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 GSM Base Station Identification (点在多边形内模板)
In the Personal Communication Service systems such as GSM (Global System for Mobile Communications), ...
- [CSP-S模拟测试]:平均数(二分答案+归并排序)
题目描述 有一天,小$A$得到了一个长度为$n$的序列.他把这个序列的所有连续子序列都列了出来,并对每一个子序列都求了其平均值,然后他把这些平均值写在纸上,并对它们进行排序,最后他报出了第$k$小的平 ...
- 2018-2019-2 《Java程序设计》第11周学习总结
20175319 2018-2019-2 <Java程序设计>第11周学习总结 教材学习内容总结 本周学习<Java程序设计>第十三章java网络编程: - URL类 URL类 ...
- (转)超详细java中的ClassLoader详解
转:https://blog.csdn.net/briblue/article/details/54973413 ClassLoader翻译过来就是类加载器,普通的java开发者其实用到的不多,但对于 ...
- Linux启动详细过程(开机启动顺序)
启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬盘 ...
- 使用Gradle打出带签名的apk包
step1:配置build.gradle文件 step1:切换到项目所在目录,用build命令打包 首先 gradle clean 命令清理一下当前项目 E:\AndroidStudioProject ...
- upc组队赛16 GCDLCM 【Pollard_Rho大数质因数分解】
GCDLCM 题目链接 题目描述 In FZU ACM team, BroterJ and Silchen are good friends, and they often play some int ...
- pssh系列命令详解
安装 pssh提供OpenSSH和相关工具的并行版本.包括pssh,pscp,prsync,pnuke和pslurp.该项目包括psshlib,可以在自定义应用程序中使用.pssh是python写的可 ...
- UVA12174_Shuffle
Shuffle 大致题意: 你有一个随机播放的播放器,有s首歌,在这s首播放完之前不会重新打乱顺序,现在给出一段只含有1~s的n长度序列,现在问你下次随机排序发生的时间有多少种可能 其实就是问你这个播 ...