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.给变量赋值时,如果字符串中包含空格,就必须 ...
随机推荐
- IT培训行业揭秘(五)
前面说了一大堆,简单揭露了一些目前培训行业鱼龙混在的情况,那么今天我就站在一个即将毕业的大学生角度来谈谈如何选择一个靠谱的培训机构. 你即将大学毕业了,在大学里面浑浑噩噩的混了几年,马上就要离开校园, ...
- IEEE 802.11p (WAVE,Wireless Access in the Vehicular Environment)
IEEE 802.11p(又称WAVE,Wireless Access in the Vehicular Environment)是一个由IEEE 802.11标准扩充的通讯协定.这个通讯协定主要用在 ...
- 神奇的BFC以及被忽略的东西
BFC是CSS中一个非常重要的概念,经常用来清除浮动以及处理外边距折叠,但BFC到底是个什么东西却很难准确的表达清楚,国内的相关技术文档基本都不全面,本文的目的就是对BFC的方方面面做个整理,当然未必 ...
- HashMap
HashMap的定义 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, ...
- jquery版固定边栏滚动特效
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- JavaEE学习文章汇总-ssm框架
Spring-SpringMVC-Mybatis 1:Maven创建webapp项目 Maven 下的spring框架(一创建项目) 2:mybatis3 入门教程 mybatis实战教程(mybat ...
- Android动态加载框架汇总
几种动态加载的比较 1.Tinker 用途:热修复 GitHub地址:https://github.com/Tencent/tinker/ 使用:http://www.jianshu.com/p/f6 ...
- C#执行Dos命令公用方法
private static string InvokeCmd(string cmdArgs) { string Tstr = ""; Process p = new Proces ...
- UVA1585
#include<stdio.h> #include<string.h> int main(){ int n; ]; scanf("%d",&n); ...
- SQL链接服务器
最近做项目,需要对两个数据库进行同步操作,所以采用在Server SQL中建立链接服务器方式实现. 链接服务器,可以直接访问/操作其他服务器上的数据库表. 1.连接SQL Server链接服务器 EX ...