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.给变量赋值时,如果字符串中包含空格,就必须 ...
随机推荐
- ASP.NET - Web API,从简单类型到复杂类型的参数传递用例,以及传递简单string类型的解决办法
一,简单类型的传值 比如 public Users Get(int id) ,它可以使用两种方式获取: api/default/ $.get("/api/default",{id: ...
- Python小白的发展之路之Python基础(二)
列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1.列表.元组操作 (1)列表 列表是可变的(mutable)--可以改变列表的内容,这不同于字符串和元组,字符串和元组都是不 ...
- LINQ取复杂列表
class Program { public class Order { public int ID { get; set; } public string OrderNo { get; set; } ...
- HYSBZ 2038 莫队算法
小Z的袜子(hose) Time Limit:20000MS Memory Limit:265216KB 64bit IO Format:%lld & %llu Submit ...
- DataTable ajax分页+删除+查询+修改
这个框架前前后后跳进了很多次坑,也算是本人比较愚笨吧做了很长的时间而积累的经验... dataTable用了很久,今天在此总结一下使用方法以及常用属性的解释. Html代码 : <div cla ...
- struts2.5的配置及其注意事项
坑爹的apache,官方的jar包提供了一个struts2的运行最小jar包
- iOS10权限设置问题以及xcdoe8更新细节问题
<key>NSVideoSubscriberAccountUsageDescription</key> <string></string> <ke ...
- Scrum Meeting 20161209
本周Sprint Master 史少帅 会议概要 工作总结: · 陈双, 王永超: 打分功能合并到主分支并且测试成功 · 鲍航波 录音上传.下载接口封装完成,可供调用 · 侯宇泰, 史少帅: 修复录音 ...
- C#基础:飞行棋游戏
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 写了个项目 Web-Rtmp: 使用 WebSocket 在网页上播放 RTMP 直播流
http://neue.v2ex.com/t/316766 虽说浏览器里用 js 解码'播放'视频的方案已经有几个了... 为什么不再多一个呢... 基本原理: 服务端使用 websockify 中转 ...