shell学习
Posted 枯木逢春
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell学习相关的知识,希望对你有一定的参考价值。
#!/bin/bash #######read从屏幕输入######## echo "what is your name?" read PERSON echo "Hello, $PERSON" author="yangjiao" echo $author ######$1,$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=20 height=175 weight=62 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 world" ############数组的使用########## #####用()表示数组,数组元素之间用空格来分割,不支持多维数组######### nums=(29 30 42) ##########弱类型,并不要求所有数组元素的类型必须相同###### arr=(20 56 "test" "www.baidu.com") echo ${nums[1]} ########用@或*可以获取数组中的所有元素########### echo ${nums[*]} echo ${arr[*]} echo ${nums[@]} echo ${arr[@]} ########获取数组长度,利用@或*将数组扩展成列表,然后使用#来获取数组元素的个数#### echo ${#nums[*]} echo ${#nums[@]} ########如果某个元素是字符串,可以通过指定下标获取该元素的长度######## nums[5]="360.cn" array_new=(${nums[*]} ${arr[*]}) echo ${array_new[*]} ########删除数组元素############ unset nums[0] echo ${nums[*]} unset nums echo ${nums[*]} ############字符串的使用############## #####单引号不解析字符串,双引号解析字符串###### #####字符串拼接直接放在一起即可,简单粗暴###### n=74 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:2:9} ######如果省略length,截取到字符串末尾################ echo ${myurl:2} ######从右边开始计数 $(string: 0-start: length),从右边开始计数,起始数字是1,截取方向是从左到右###### echo ${myurl:0-13:9} echo ${myurl:0-13} #####字符串截取############### #####使用#号可以截取指定字符(或者子字符串)$(string#*chars)############ #####其中,string 表示要截取的字符,chars 是指定的字符(或者子字符串),*是通配符的一种,表示任意长度的字符串。*chars连起来使用的意思是: 忽略左边的所有字符,直到遇见 chars(chars 不会被截取)########### echo ${str#*:} echo ${str#*p:} #####如果有相同的,匹配到第一个结束###### echo ${str#*/}
参考文档 http://c.biancheng.net/view/739.html
以上是关于shell学习的主要内容,如果未能解决你的问题,请参考以下文章
20155201 李卓雯 《网络对抗技术》实验一 逆向及Bof基础