shell高级编程(2)——特殊字符

  • #
    注释行首以#开头为注释(#!是个例外).

    1. 表示注释
    2. 在引号中间和#等表示#本身
    3. echo ${PATH#*:} # 参数替换,不是一个注释
    4. echo $(( 2#101011 )) # 数制转换,不是一个注释
  • ;
    命令分隔符,可以用来在一行中来写多个命令.

    1. 命令分隔,在一行中写多个命令 echo “aa” ; echo “bb”
    2. 在条件中的if和then如果放在同一行,也用;分隔
  • ;;
    终止”case”选项

  • .
    1. 命令:source
    2. 文件名的前缀,隐藏文件
    3. 目录:.当前目录,..父目录
    4. 正则表达式:匹配任意单个字符

  • “STRING”将会阻止(解释)STRING中大部分特殊的字符


  • 全引用. ‘STRING’ 阻止了全部特殊字符

  • ,
    逗号链接了一系列的算术操作,虽然里边所有的内容都被运行了,但只有最后一项被 返回.

  • \
    转义字符,如\X 等价于”X”或’X

  • /
    文件名路径分隔符.或用来做除法操作

  • `
    后置引用,命令替换

  • :

    1. 空命令
    2. 还用来在/etc/passwd 和$PATH 变量中用来做分隔符
  • !
    取反操作符
  • *
    1. 通配符
    2. 数学乘法
    3. ** 是幂运算

    1. 测试操作
    2. (())结构可以用来做数学计算或者是写 c 代码,那?就是 c 语言的 3 元操作符的 一个
    3. 在正则表达式中一样匹配任意的单个字符
  • $
    1. 变量替换
    2. 在正则表达式中作为行结束符
  • ${}
    参数替换
  • $* #@
    位置参数
  • $?
    退出状态变量.$?保存一个命令/一个函数或者脚本本身的退出状态
  • $$
    进程 ID 变量.这个$$变量保存运行脚本进程 ID
  • ()
    命令组
  • {}
    1. 大括号扩展
    2. 代码块
 #!/bin/bash
 # 从 /etc/fstab 中读行

 File=/etc/fstab 

 {
 read line1
 read line2
 } < $File

 echo "First line in $File is:"
 echo "$line1"
 echo
 echo "Second line in $File is:"
 echo "$line2"

 exit 0
 #!/bin/bash
 # rpm-check.sh

 # 这个脚本的目的是为了描述,列表,和确定是否可以安装一个 rpm 包.
 # 在一个文件中保存输出.
 #
 # 这个脚本使用一个代码块来展示 8
 SUCCESS=0
 E_NOARGS=65

 if [ -z "$1" ]
 then
 echo "Usage: `basename $0` rpm-file"
 exit $E_NOARGS
 fi

 {
 echo
 echo "Archive Description:"
 rpm -qpi $1 # 查询说明
 echo
 echo "Archive Listing:"
 rpm -qpl $1 # 查询列表
 echo
 rpm -i --test $1 # 查询 rpm 包是否可以被安装
 if [ "$?" -eq $SUCCESS ]
 then
 echo "$1 can be installed."
 else
 echo "$1 cannot be installed."
 fi
 echo
 } > "$1.test" # 把代码块中的所有输出都重定向到文件中

 echo "Results of rpm test in file $1.test"

# 查看rpm的man页来查看rpm的选项

 exit 0
  • []
    1. test
    2. 数组元素
    3. 字符范围
    Array[1]=slot_1 
    echo ${Array[1]}
  • [[]]
    test
  • (())
    数学运算符的扩展
  • > >> >& &> <
    重定向
    1. scriptname >filename 重定向脚本的输出到文件中.覆盖文件原有内容.
    2. command &>filename 重定向 stdout 和 stderr 到文件中
    3. command >&2 重定向 command 的 stdout 到 stderr
    4. scriptname >>filename 重定向脚本的输出到文件中.添加到文件尾端,如果没有文件, 则创建这个文件.
  • <<
    用在here document
  • <<<
    重定向,用在”here string”
  • <, >
    ASCII 比较
  • \<, >
    正则表达式中的单词边界
  • |
    管道.分析前边命令的输出,并将输出作为后边命令的输入
  • >|
    强制重定向
  • ||
    或-逻辑操作
  • &
    后台运行命令
#!/bin/bash
#background-loop.sh

for i in 1,2,3,4,5,6,7,8,9,10
do
        echo -n "$i"
done&

echo "finish 1-10"

for i in 11,12,13,14,15,16,17,18,19,20
do
        echo -n "$i"
done

echo "finish 11-20"
exit
#-------------------------------------------------------- 

#期望的输出应该是
#1 2 3 4 5 6 7 8 9 10
#11 12 13 14 15 16 17 18 19 20

#然而实际的结果有可能是
#11 12 13 14 15 16 17 18 19 20
#1 2 3 4 5 6 7 8 9 10 bozo $
#(第 2 个'echo'没执行,为什么?)

#也可能是
#1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#(第 1 个'echo'没执行,为什么?)

#非常少见的执行结果,也有可能是:
#11 12 13 1 2 3 4 5 6 7 8 9 10 14 15 16 17 18 19 20
#前台的循环先于后台的执行
  • -
    1. 之前工作的目录 cd -
    2. 算术减号
    3. 用于重定向 stdin 或 stdout
      tar -cvf - /home | tar -xvf -tdout
      tar -cvf - /home 将home打包到stdout(-)
      | 管道,即前一命令的输出为后一命令输入
      tar -xvf - 从stdin(-)解包
#!/bin/bash
#备份最后一天修改的文件
BACKUPFILE=backup-$(date +%m-%d-%Y)
archive=${1:-$BACKUPFILE}
tar cvf - `find . -mtime -1 -type f -print` >$archive.tar
gzip $archive.tar
echo "Directory $PWD backed up in archive file\"$archive.tar.gz\"."
exit 0
  • =
    算术等号
  • +
    1. 算术加号,也用在正则表达式中
    2. 选项,对于特定的命令来说使用”+”来打开特定的选项,用”-“来关闭特定的选项
  • %
    算术取模运算.也用在正则表达式中
  • ~
    home 目录.相当于$HOME 变量
  • ~+
    当前工作目录,相当于$PWD 变量
  • ~-
    之前的工作目录,相当于$OLDPWD 内部变量
  • ^
    行首,正则表达式中表示行首.”^”定位到行首
内容概要:本文档详细介绍了基于Google Earth Engine (GEE) 构建的阿比让绿地分析仪表盘的设计与实现。首先,定义了研究区域的几何图形并将其可视化。接着,通过云掩膜函数和裁剪操作预处理Sentinel-2遥感影像,筛选出高质量的数据用于后续分析。然后,计算中值图像并提取NDVI(归一化差异植被指数),进而识别绿地及其面积。此外,还实现了多个高级分析功能,如多年变化趋势分析、人口-绿地交叉分析、城市热岛效应分析、生物多样性评估、交通可达性分析、城市扩张分析以及自动生成优化建议等。最后,提供了数据导出、移动端适配和报告生成功能,确保系统的实用性和便捷性。 适合人群:具备一定地理信息系统(GIS)和遥感基础知识的专业人士,如城市规划师、环境科学家、生态学家等。 使用场景及目标:①评估城市绿地分布及其变化趋势;②分析绿地与人口的关系,为城市规划提供依据;③研究城市热岛效应及生物多样性,支持环境保护决策;④评估交通可达性,优化城市交通网络;⑤监测城市扩张情况,辅助土地利用管理。 其他说明:该系统不仅提供了丰富的可视化工具,还集成了多种空间分析方法,能够帮助用户深入理解城市绿地的空间特征及其对环境和社会的影响。同时,系统支持移动端适配,方便随时随地进行分析。用户可以根据实际需求选择不同的分析模块,生成定制化的报告,为城市管理提供科学依据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值