博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第2章 shell的语法
阅读量:6966 次
发布时间:2019-06-27

本文共 1556 字,大约阅读时间需要 5 分钟。

  • 管道和重定向
1 重定向输出>2 重定向输入<3 管道|

 

  • 变量
1 用户变量2 环境变量3 参数变量
    参数变量         说明    
    $0     shell脚本的名字  
    $$     shell脚本的进程号  
    $1, $2, ...       各个参数
    $#     参数个数
    $*     列出所有参数
    $@     列出所有参数(不受IFS改变)  

 

  •  条件测试命令test或[
字符串比较
    string1 = string2     
    string1 != string2     
    -n string   字符串不为空,则为真  
    -z string   字符串为空,则为真  
算术比较
  expr1 -eq expr2     如果相等,则为真
  expr1 -ne expr2   如果不相等,则为真    
  expr1 -gt expr2   如果expr1大于expr2,则为真
  expr1 -ge expr2   如果expr1大于等于expr2,则为真
  expr1 -lt expr2   如果expr1小于expr2,则为真    
  expr1 -le expr2   如果expr1小于等于expr2,则为真
  ! expr  
文件条件测试
  -d file     如果是目录,则为真  
  -e file     如果文件存在,则为真(不可移植,用-f)  
  -f file     如果是普通文件,则为真  
  -g file     如果设置了set-group-id位,则为真  
  -r file     如果可读,则为真  
  -s file     如果大小不为0,则为真  
  -u file     如果设置了set-user-id位,则为真  
  -w file     如果可写,则为真  
  -x file     如果可执行,则为真  
 

 

  • 控制结构
if语句for语句while语句until语句case语句

 

  • 参数扩展
 
  ${param:-default}     如果param为空,就设为default  
  ${#param}    param长度
  ${param#word}   从param头部开始删除与word匹配到最小部分,返回剩余部分  
  ${param##word}   从param头部开始删除与word匹配到最大部分,返回剩余部分
  ${param%word}   从param尾部开始删除与word匹配到最小部分,返回剩余部分
  ${param%%word}   从param尾部开始删除与word匹配到最大部分,返回剩余部分
示例
1 #!/bin/sh 2  3 unset foo 4 echo ${foo:-bar}  5  6 foo=fud 7 echo ${foo:-bar} 8  9 foo=/usr/bin/X11/startx10 echo ${foo#*/}11 echo ${foo##*/}12 13 bar=/usr/local/etc/local/networks14 echo ${bar%local*}15 echo ${bar%%local*}16 17 exit 0
 

结果

1 bar2 fud3 usr/bin/X11/startx4 startx5 /usr/local/etc/6 /usr/
 

 

 

 

转载于:https://www.cnblogs.com/kimiz/archive/2012/07/10/2581607.html

你可能感兴趣的文章
对象比较:Comparable 和 Comparator
查看>>
jsp中的contentType与pageEncoding的区别和作用
查看>>
java 调用启动远程shell脚本,启动spark
查看>>
Spring boot ----RestTemplate学习笔记
查看>>
[LUOGU] P3128 [USACO15DEC]最大流Max Flow
查看>>
windows2003server下能安装的MSN
查看>>
Caffe将自己的文件生成lmdb
查看>>
C# 枚举中的位运算
查看>>
Codeforces Global Round 1 晕阙记
查看>>
百度文化秘籍
查看>>
Algs4-1.3.33一个双向队列Deque-双向链表实现
查看>>
Algs4-2.2.29自然的归并排序(未解决)
查看>>
shell中数组基础语法
查看>>
P1215 母亲的牛奶
查看>>
回头再看第一次项目
查看>>
有无关键字new的区别
查看>>
Hashmap,Set,Map,List,ArrayList的区别
查看>>
3.Linux 文件的压缩与打包
查看>>
JAVA分布式架构
查看>>
导入自定义模块model
查看>>