#!/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. javascript fetch 跨域请求时 session失效问题

    javascript 使用fetch进行跨域请求时默认是不带cookie的,所以会造成 session失效. fetch(url, { method: 'POST', credentials: 'in ...

  2. OpenGL之坐标转换(好文-清晰版)

    http://blog.csdn.net/zhongjling/article/details/8488844OpenGL之坐标转换(好文-清晰版)

  3. BZOJ 1624 [Usaco2008 Open] Clear And Present Danger 寻宝之路:floyd

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1624 题意: 农夫约翰正驾驶一条小艇在牛勒比海上航行. 海上有N(1≤N≤100)个岛屿, ...

  4. BLOB二进制大数据

    What is a Blob? A blob object represents a chuck of bytes that holds data of a file. But a blob is n ...

  5. HihoCoder 1590 : 紧张的会议室(区间最大+离散化)

    时间限制:20000ms 单点时限:2000ms 内存限制:256MB 描述 小Hi的公司最近员工增长迅速,同时大大小小的会议也越来越多:导致公司内的M间会议室非常紧张. 现在小Hi知道公司目前有N个 ...

  6. 洛谷p1007独木桥

    P1007独木桥 题目背景 战争已经进入到紧要时间.你是运输小队长,正在率领运输部队向前线运送物资.运输任务像做题一样的无聊.你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥 ...

  7. ADB命令小结

    )adb devices //查看启动的所有设备 )adb kill-server //重启设备 )adb start-server //启动设备 )adb -s emulator-(通过 adb d ...

  8. Linux设备驱动之Kobject、Kset

    作者:lizuobin(也是我们兼职的论坛答疑助手) 原文: https://blog.csdn.net/lizuobin2/article/details/51523693 纠结又纠结,虽然看了一些 ...

  9. fragment error

    error:   android.view.InflateException: Binary XML file line #6: Error inflating class fragment 解决办法 ...

  10. 机器学习之PCA主成分分析

    前言            以下内容是个人学习之后的感悟,转载请注明出处~ 简介 在用统计分析方法研究多变量的课题时,变量个数太多就会增加课题的复杂性.人们自然希望变量个数较少而得到的 信息较多.在很 ...