shell学习(1)
#!/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)的更多相关文章
- shell学习总结之自定义函数
shell学习总结之自定义函数 Myfun (){ echo -n "now i is $i " ! [ "$i" ] && exit ; ec ...
- SHELL学习笔记----IF条件判断,判断条件
SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外. if list then do something here ...
- shell学习笔记
shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...
- shell学习指南-阅读笔记
shell学习指南真不是刚开始学习shell应该看得书,虽然其中讲了简单的linux命令,shell语法等,但是每章也有些深入和生僻地方,我想如果我刚学shell看到这样的地方一定会头疼的要死.或许也 ...
- 【转】shell学习笔记(一)——学习目的性、特殊字符、运算符等
1 学习shell的目的性 写之前我们先来搞清楚为什么要学shell,学习要有目的性 shell简单.灵活.高效,特别适合处理一些系统管理方面的小问题 shell可以实现自动化管理,让系统管理员的工作 ...
- Shell学习之结合正则表达式与通配符的使用(五)
Shell学习之结合正则表达式与通配符的使用 目录 通配符 正则表达式与通配符 通配符 通配符的使用 正则表达式 正则表达式 正则表达式的使用 通配符 正则表达式与通配符 正则表达式用来在文件中匹配符 ...
- Shell学习之条件测试(四)
Shell学习之条件测试 目录 逻辑测试 文件测试 数值比较 字符串比较 逻辑测试 格式: [ 表达式 ] 操作符 [ 表达式2 ] …… 命令1 操作符 命令2 …… 常用的操作符 ( 注意:-a和 ...
- Shell学习之环境变量配置文件(三)
Shell学习之环境变量配置文件 目录 环境变量配置文件简介 环境变量配置文件作用 其他配置文件和登录信息 环境变量配置文件简介 环境变量配置文件简介 环境变量配置文件中主要是定义对系统操作环境生效的 ...
- Shell学习之Bash变量详解(二)
Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这 ...
- Shell学习之Shell特性(一)
Shell学习之Shell特性 目录 命令和文件自动补齐功能 命令历史记忆功能 history.上下键.!number.!string.!$.!! 别名功能 alias.unalias cp.~use ...
随机推荐
- Javascript的参数详解
函数可以有参数也可以没有参数,如果定义了参数,在调用函数的时候没有传值,默认设置为undefined 在调用函数时如果传递参数超过了定义时参数,jS会忽略掉多余参数 jS中不能直接写默认值,可以通过a ...
- 【bzoj2286】[Sdoi2011]消耗战
虚树入门题: #include<cstdio> #include<cstring> #include<algorithm> #include<ctime> ...
- JavaScript学习第四天
1.自定义属性,使用好索引值 例子: 下面有一段js代码: <script> window.onload = function(){ var oBtn = document.getElem ...
- ubuntu连接kinect v2
经过这个过程才悟到,有的时候不是方法不对,也不是问题解决的不对,只是因为配置问题,如果配置不对,自然会出现各种各样问题,不如一开始就确定配置.不过,如果不是经历了这个过程,我也不知道是因为我的配置问题 ...
- html5--5-16 综合实例绘制饼图
html5--5-16 综合实例绘制饼图 实例 <!doctype html> <html> <head> <meta charset="utf-8 ...
- 【CQ18高一暑假前挑战赛4】标程
[二分或者STL] 二分: #include<bits/stdc++.h> using namespace std; ; int a[maxn]; int main() { ,pos; s ...
- [PA 2011] Journeys
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3073 [算法] 考虑线段树优化建图 建立两棵线段树 , 一棵为入树 , 一棵为出树 ...
- heartbeat3.x部署安装
使用Heartbeat构建Linux双机热备系统 本文档版本号: V1.0 版 本 历 史 版本号 更新时间 说 明 创建者 V1.0 2013-3-23 修改版 金桥 1 部署环境 OS: Red ...
- 双重检查锁实现单例(java)
单例类在Java开发者中非常常用,但是它给初级开发者们造成了很多挑战.他们所面对的其中一个关键挑战是,怎样确保单例类的行为是单例?也就是说,无论任何原因,如何防止单例类有多个实例.在整个应用生命周期中 ...
- 使用 SourceTree 管理ios项目
SourceTree 是一个非常优秀的版本控制软件,他是一个客户端,方便我们去接入 GitHub .BitBucke 上面托管的代码. 声明(1——4是来自简书的非个人作品,仅仅保存资料学习使用) 一 ...