shell语法
基本语法列表
#linux组成:内核+工具 #linux启动:
. getty:提示登录名和密码,输入之后调用login
. login:login验证用户名和密码,然后调用shell
. shell:用户与系统的交互接口 #文件的分类:普通文件、目录、特殊文件。
. 普通文件的:ls cat cp mv rm
. 目录:ls mkdir rmdir cp mv rm #文件的属性:权限、所有者、组
. 权限:chmod
. 所有者、组:chown chgrp #进程:前台,后台
. & fg bg nohup(终端断开同样执行)
. jobs ps top kill
. exec #变量:普通变量、数组变量
. $
. 数组变量赋值:ksh:set -A name value1 value2 value3,bash: name(value1 value2 value3)
. 数组的访问:${name[index]},${name[*]},${name[*]}
. readonly
. set unset
#变量:局部变量、环境变量、Shell变量
. shell变量:PWD UID SHLVL REPLY RANDOM SECONDS IFS PATH HOME
. export #替换:文件名替换、变量替换
. 文件名的替换:* ? [characters]
. 变量替换
${parameter:-word} 若parameter为空或未设置,使用word代替parameter进行替换,parameter的值不变
${parameter:+word} 若parameter设置了,使用word代替parameter进行替换,parameter的值不变
${parameter:=word} 若parameter为空或未设置,则parameter设置为word
${parameter:?message} 若parameter为空或未设置,这message作为标准错误打印出来
. 命令替换:`command`
. 算术替换:$((express)) #参数:
. $:程序名字
. $n:第n个参数
. $#:参数数量
. $*:所有的参数
. $@:全部
. $?:
. $$:
. $!:
. shift #输入
. 向屏幕:echo printf
. 重定向输出:> >> |
. 重定向输入:<
. read #文本过滤
. head tail grep sort uniq tr
. sed awk #常用工具
eval
:
type
sleep
find
xargs
expr #控制流
. if
if list1
then
list2
elif list3
then
list4
else
list5
fi
. case
case word in
pattern1)
list1
;;
pattern2)
list2
;;
esac
. while
while command
do
list
done
. until
until command
do
list
done
. for
for name in value1 value2 ... valueN
do
list
done
. select
select name in value1 value2 ... valueN
do
list
done
. break continue #判断
. 判断 test [ ]
. 文件判断
-f file:文件是否存在
-d path:路径是否存在
-r file:是否可读
-w file:是否可写
-x file:是否可执行
. 字符串判断
-z string:字符长度为0
-n string:字符长度不为0
string1 = string2:相等
string1 != string2:不相等
. 数字比较
-eq:=
-ne:<>
-lt:<
-gt:>
-le:<=
-ge:>=
. 逻辑运算
!expr:非
expr1 -a expr2:且
expr1 -o expr2:或
&&
|| #函数
. 定义
name( ) { list ; } #tips
#读文件
while read Line
do
echo $Line
done < file
#find
find * -name '*.sh'
#输入一长段提示
echo 'one
two'
echo 'one\ntwo'
cat <<EOF
NICE DAY IN THE WORLD.
THIS IS A VERY NICE DAY.
EOF
#最后一个参数的求法
eval last=\${$#}
shell语法的更多相关文章
- makefile中的shell语法
在Makefile中写shell代码有点诡异,和不同的shell语法不太一样,如果不了解,看Makefile会莫名其妙.下面总结了一些. 1:尽在Makefile文件的目标项冒号后的另起一行的代码才是 ...
- Hadoop学习笔记之HBase Shell语法练习
Hadoop学习笔记之HBase Shell语法练习 作者:hugengyong 下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下: 名称 命令 ...
- Shell语法规范
ver:1.0 博客:https://www.cnblogs.com/Rohn 本文介绍了Shell编程的一些语法规范,主要参考依据为谷歌的Shell语法风格. 目录 背景 使用哪一种Shell 什么 ...
- shell语法习题练习进阶版
第4章 shell语法深度习题练习 4.1 使用if,case,函数的方法将服务改成system(centos6) 4.1.1 if方法 4.1.1.1 system实现 4.1.1.1.1 编写代码 ...
- 读完学会shell语法,shell脚本80%已经学会
第3章 shell语法讲解 3.1 shell运算讲解 3.1.1 运算符的讲解 3.1.2 shell运算方式的讲解 3.1.2.1 $(())运算 [root@m01 test_init] # a ...
- Shell 语法 if 、 case 、for 、 while、 until 、select 、repeat、子函数
if语法 : if [ expression ] then commandselif [ expression2 ] then commandselse commandsfi ...
- Shell 语法之结构化命令(流程控制)
许多程序在脚本命令之间需要某种逻辑流控制,允许脚本根据变量值的条件或者其他命令的结果路过一些命令或者循环执行这些命令.这些命令通常被称为结构化命令.和其他高级程序设计语言一样,shell提供了用来控制 ...
- shell语法快速入门(1)
#得到绝对路径 DIR=$(cd `dirname $0`;pwd) $DIR/file.txt #去掉#注释 egrep -v "(#|^$)" /etc/zabbix/zabb ...
- shell语法基础
一.变量 1.linux大小写敏感,变量取名要注意大小写.可以通过变量名前面加$来访问变量的内容.可以通过使用read命令来将用户输入的值赋给一个变量. 2.给变量赋值时,如果字符串中包含空格,就必须 ...
随机推荐
- jquery点滴
1.toggle 2.next prev after before 3.on 4.当我们使用jquery的attr('checked',true)或者attr('checked','checked') ...
- 用jQuery获取表单的值
在日常开发过程中,有许多用到表单的地方.比如登录,注册,比如支付,填写订单,比如后台管理等等. 使用jQuery来获取表单的值是比较常见的做法. 常见表单 单行文字域:<input type=' ...
- Codeforces 刷水记录
Codeforces-566F 题目大意:给出一个有序数列a,这个数列中每两个数,如果满足一个数能整除另一个数,则这两个数中间是有一条边的,现在有这样的图,求最大联通子图. 题解:并不需要把图搞出来, ...
- Javascript获取div真实高度
第一种情况就是宽高都写在样式表里,就比如#div1{width:120px;}.这中情况通过#div1.style.width拿不到宽度,而通过#div1.offsetWidth才可以获取到宽度. 第 ...
- 阿里云免费申请免费SSL证书
随着互联网的不断进步与发展,对于网站与数据的安全性要求也越来越高,原本的HTTP明文传输已经不被信任,https逐渐被关注,从谷歌.火狐浏览器将对HTTP明文页面标记"不安全",到 ...
- Beta阶段项目展示
1.团队简介 韩青长 前端工程师 我是韩青长,技术小白,抱着对软工的好奇和对未来工作的憧憬选了这门课.暂时选择了测试的工作,也对开发和UI有一定兴趣.从前上帝创造了我们,现在轮到我们来创造自己的软件了 ...
- Beta阶段第七次Scrum Meeting
Beta阶段第七次Scrum Meeting 情况简述 BETA阶段第七次Scrum Meeting 敏捷开发起始时间 2016/12/20 00:00 敏捷开发终止时间 2016/12/21 00: ...
- Cookie和Session的区别
前言 HTTP是一种无状态的协议,为了分辨链接是谁发起的,就需要我们自己去解决这个问题.不然有些情况下即使是同一个网站我们每打开一个页面也都要登录一下.而Session和Cookie就是为解决这个问题 ...
- CocoaPods升级,升级以后出现bug的解决方法(升级必看!)
命令行更新(安装)步骤[更新步骤] $ sudo gem update --system // 先更新gem,国内需要切换源 $ gem sources --remove https://rubyge ...
- 特性 Attribute
特性就是一个类,必须是Attribute的子类 一般以Attribute结尾,然后在使用的时候,可以去掉这个结尾 可以在特性中声明字段.属性.方法.构造函数.委托.事件... [AttributeUs ...