#!/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学习之Math对象详解

    1.定义 Math 是一个内置对象, 为数学常量和数学函数提供了属性和方法.  Math 不是一个函数对象 Math 不是一个构造器.  Math 的所有属性和方法都是静态的 2.属性 Math.E ...

  2. 时间操作(Java版)—获取给定日期N天后的日期

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/wangshuxuncom/article/details/34896777         获取给定 ...

  3. VB.Command()的参数

    VB.Command()的参数的来源有三个地方 1配置文件2启动参数3框架

  4. Page Objects

    Page Objects 原文地址:https://github.com/SeleniumHQ/selenium/wiki/PageObjects Within your web app's UI t ...

  5. 有关Option.inSamplSize 和 Compress 图片压缩

    1.图片占用内存:占用的内存 = 图片长度 * 图片宽度 * 单位像素占用的字节数 注: 图片长度和图片宽度就是图片在行列上的像素数量. 图片格式: ALPHA_8:表示8位Alpha位图,即A=8, ...

  6. h5 placeholder 设置无效

    下面设置方式无效: ::-webkit-input-placeholder { /* WebKit browsers */ color: #999; } :-moz-placeholder { /* ...

  7. HttpServlet cannot be resolved to a type解决方法

    1:是因为没有加入servlet-api.jar 2:下载网址:http://download.csdn.net/detail/jiuyueguang/5745209 3:然后在项目右键->bu ...

  8. UVA11892 ENimEN —— 博弈

    题目链接:https://vjudge.net/problem/UVA-11892 题意: 两人玩游戏,有n堆石子,每堆有ai块石子,两人轮流取,要求一次只能选择一堆石子取任意块.最后取完的获胜. 题 ...

  9. Appium——adb 启动问题Invalid argument: cannot open transport registration socketpair could not read ok from ADB Server failed to start daemon * error: cannot connect to daemon

    adb启动问题:Invalid argument: cannot open transport registration socketpair could not read ok from ADB S ...

  10. python不同目录下的调用

    转自http://blog.csdn.net/hansel/article/details/8975663 Python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件 ...