#!/bin/bash
#######read从屏幕输入########
echo "what is your name?"
read PERSON
echo "Hello, $PERSON"
author="yangjiao"
echo $author
######$,$2获取的参数顺序##########
skill="Java"
echo "I am good at ${skill}Script"
echo "Language:$1"
echo "URL:$2"
###########命令替换两种方式,一种是反引号``,一种是$()#######
##########var_name=`command` 或 var_name=$(command)####
DATE_01=`date`
DATE_02=$(date)
echo $DATE_01
echo $DATE_02
LSL=`ls -l`
echo "$LSL"
#########$()嵌套###########
Fir_File_Lines=$(wc -l $(ls | sed -n '1p'))
echo $Fir_File_Lines ########echo的使用 #######
####默认会换行,不希望换行,可以加上-n参数####
name="Tom"
age=
height=
weight=
echo -n "${name} is ${age} years old "
echo -n "${height}cm in height "
echo "and ${weight}kg in weight "
echo "Thank you"
####默认不会解析以反斜杠\开头的转义字符,要当成普通字符,得需要加-e####
echo -e "hello \nworld" ############数组的使用##########
#####用()表示数组,数组元素之间用空格来分割,不支持多维数组#########
nums=( )
##########弱类型,并不要求所有数组元素的类型必须相同######
arr=( "test" "www.baidu.com")
echo ${nums[]}
########用@或*可以获取数组中的所有元素###########
echo ${nums[*]}
echo ${arr[*]}
echo ${nums[@]}
echo ${arr[@]}
########获取数组长度,利用@或*将数组扩展成列表,然后使用#来获取数组元素的个数####
echo ${#nums[*]}
echo ${#nums[@]}
########如果某个元素是字符串,可以通过指定下标获取该元素的长度########
nums[]="360.cn"
array_new=(${nums[*]} ${arr[*]})
echo ${array_new[*]}
########删除数组元素############
unset nums[]
echo ${nums[*]}
unset nums
echo ${nums[*]} ############字符串的使用##############
#####单引号不解析字符串,双引号解析字符串######
#####字符串拼接直接放在一起即可,简单粗暴######
n=
str1=www.baidu.com$n
str2="shell \"script\" $n"
str3='c语言中文网$n'
echo $str1
echo $str2
echo $str3
####获取字符串长度########
str="http://www.baidu.com"
echo ${#str}
#######字符串截取#########
######从字符串左边开始计数 ${string:start:length}############
myurl="c.biancheng.net"
echo ${myurl::}
######如果省略length,截取到字符串末尾################
echo ${myurl:}
######从右边开始计数 $(string: -start: length),从右边开始计数,起始数字是1,截取方向是从左到右######
echo ${myurl:-:}
echo ${myurl:-}
#####字符串截取###############
#####使用#号可以截取指定字符(或者子字符串)$(string#*chars)############
#####其中,string 表示要截取的字符,chars 是指定的字符(或者子字符串),*是通配符的一种,表示任意长度的字符串。*chars连起来使用的意思是:
忽略左边的所有字符,直到遇见 chars(chars 不会被截取)###########
echo ${str#*:}
echo ${str#*p:}
#####如果有相同的,匹配到第一个结束######
echo ${str#*/}

参考文档 http://c.biancheng.net/view/739.html

shell学习(1)的更多相关文章

  1. shell学习总结之自定义函数

    shell学习总结之自定义函数 Myfun (){ echo -n "now i is $i " ! [ "$i" ] && exit ; ec ...

  2. SHELL学习笔记----IF条件判断,判断条件

    SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外.  if list then           do something here   ...

  3. shell学习笔记

    shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...

  4. shell学习指南-阅读笔记

    shell学习指南真不是刚开始学习shell应该看得书,虽然其中讲了简单的linux命令,shell语法等,但是每章也有些深入和生僻地方,我想如果我刚学shell看到这样的地方一定会头疼的要死.或许也 ...

  5. 【转】shell学习笔记(一)——学习目的性、特殊字符、运算符等

    1 学习shell的目的性 写之前我们先来搞清楚为什么要学shell,学习要有目的性 shell简单.灵活.高效,特别适合处理一些系统管理方面的小问题 shell可以实现自动化管理,让系统管理员的工作 ...

  6. Shell学习之结合正则表达式与通配符的使用(五)

    Shell学习之结合正则表达式与通配符的使用 目录 通配符 正则表达式与通配符 通配符 通配符的使用 正则表达式 正则表达式 正则表达式的使用 通配符 正则表达式与通配符 正则表达式用来在文件中匹配符 ...

  7. Shell学习之条件测试(四)

    Shell学习之条件测试 目录 逻辑测试 文件测试 数值比较 字符串比较 逻辑测试 格式: [ 表达式 ] 操作符 [ 表达式2 ] …… 命令1 操作符 命令2 …… 常用的操作符 ( 注意:-a和 ...

  8. Shell学习之环境变量配置文件(三)

    Shell学习之环境变量配置文件 目录 环境变量配置文件简介 环境变量配置文件作用 其他配置文件和登录信息 环境变量配置文件简介 环境变量配置文件简介 环境变量配置文件中主要是定义对系统操作环境生效的 ...

  9. Shell学习之Bash变量详解(二)

    Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这 ...

  10. Shell学习之Shell特性(一)

    Shell学习之Shell特性 目录 命令和文件自动补齐功能 命令历史记忆功能 history.上下键.!number.!string.!$.!! 别名功能 alias.unalias cp.~use ...

随机推荐

  1. myeclipse10集成Tomcat6时出现错误

    myeclipse配置Tomcat时出现错误:如图 tomcat6目录:如图 在搜集各种资料后,最终得出结论: 在Tomcat目录中新建temp文件夹,问题解决. 亲测好使.

  2. Mongoose学习(2)

    1.Schema的扩展 UserSchema.methods.findUserName = function(cb){ return this.model('user').find({username ...

  3. java replaceAll Replace

    java ReplaceAll 的两个参数都必须是正则表达式. 在正则表达式中 \ (一个斜线)是用 \\ 来表示(即:用两个斜线表示一个斜线) 而在Java语言中 \ (一个斜线)是用 \\ 来表示 ...

  4. mongodb给我们提供了fsync+lock机制把数据暴力的刷到硬盘上

    能不能把数据暴力的刷到硬盘上,当然是可以的,mongodb给我们提供了fsync+lock机制就能满足我们提的需求. fsync+lock首先会把缓冲区数据暴力刷入硬盘,然后给数据库一个写入锁,其他实 ...

  5. js中的命名空间

    尽量不要使用全局变量,防止环境污染和命名冲突. 所以,将全局变量放在一个命名空间下,是一个好的解决方案. 静态命名空间 1. 直接赋值 这是最基本的方法,但是它很啰嗦,你得重复书写多次变量名.好处是它 ...

  6. python 特殊方法之new

    object.__new__(cls[, ...]) Called to create a new instance of class cls. __new__() is a static metho ...

  7. 004-画图神器-graphviz

    1 安装及基本使用 1) 下载安装 下载地址 可以下载安装版进行安装或者解压版直接使用 2) 添加系统path 为了能够在dos中使用命令, 需要添加环境变量 默认安装路径为 C:\Program F ...

  8. STL中关于vector的一点有趣的事情

    PLZ ADD SOURCE: http://www.cnblogs.com/xdxer/p/4072056.html 今日饭后,一哥发给我一段代码,让我看看会不会有什么问题. #include< ...

  9. ascall文件和二进制文件

    ascall文件可以打开让我们看你们的具体内容. 二进制文件打开我们看到的就是一堆乱码. ascall在换行时不同的平台不一样: windows上面用  \r\n linux上面用 \n 二进制的内容 ...

  10. CS231n 2016 通关 第五、六章 Batch Normalization 作业

    BN层在实际中应用广泛. 上一次总结了使得训练变得简单的方法,比如SGD+momentum RMSProp Adam,BN是另外的方法. cell 1 依旧是初始化设置 cell 2 读取cifar- ...