/* 鼠标特效 */

SHELL 的初识

一、SHELLD的介绍 

   Shell的作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行一条,这种方式称为交互式(Interactive). 
Shell还有一种执行命令的方式称为批处理(Batch),用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲命令。

Shell脚本和编程语言很相似,也有变量和流程控制语句,但Shell脚本是解释执行的,不需要编译,Shell程序从脚本中一行一行读取并执行这些命令,相当于一个用户把脚本中的命令一行一行敲到Shell提示符下执行。

二、shell的赋值

  1).直接赋值,注意等号两边不能有空格,如赋值为数字则不需要""

[root@SHELL ~]# name="wo shi ni baba"
[root@SHELL ~]# echo $name
wo shi ni baba

  2).输入赋值,read 后接变量名,回车后输入什么 变量值就是什么

[root@SHELL ~]# read name 
wo
[root@SHELL ~]# echo $name
wo

  3).赋值等于变量,将一个变量的值赋予另一个变量,原变量更改值后,新变量不变

[root@SHELL ~]# name="baba"
[root@SHELL ~]# name1="yeye"
[root@SHELL ~]# echo $name
baba
[root@SHELL ~]# echo $name1
yeye
[root@SHELL ~]# name=$name1
[root@SHELL ~]# echo $name
yeye

 [root@SHELL ~]# echo $name
 yeye
 [root@SHELL ~]# echo $name1
 yeye
 [root@SHELL ~]# name1="nainai"
 [root@SHELL ~]# echo $name
 yeye
 [root@SHELL ~]# echo $name1
 nainai

三、内置变量$

  1)$0 返回值为执行的路径

[root@SHELL scripts]# pwd      #创建一个路径专门放脚本
/server/scripts
[root@SHELL scripts]# cat test.sh     
#!/bin/sh
#from zhang
echo $0
[root@SHELL scripts]# sh test.sh
test.sh
[root@SHELL scripts]# sh /server/scripts/test.sh
/server/scripts/test.sh
[root@SHELL scripts]#

  2)$n  传参 外面传的参数 赋值给内部,位置一一对应

[root@SHELL scripts]# cat test.sh
#!/bin/sh
#from zhang
echo $1
echo $2
echo $3
[root@SHELL scripts]# sh test.sh 1 2 3
1
2
3
[root@SHELL scripts]# sh test.sh a s d
a
s
d
[root@SHELL scripts]#

  3)$# 统计变量值的字符串长度,包括空格

[root@SHELL scripts]# name="woshinibaba"
[root@SHELL scripts]# echo $name
woshinibaba
[root@SHELL scripts]# echo ${name}
woshinibaba
[root@SHELL scripts]# echo ${#name}
11
[root@SHELL scripts]# name="wo shi ni baba"
[root@SHELL scripts]# echo ${#name}
14
[root@SHELL scripts]#

  4)$?返回脚本内命令执行是否正确,正确返回零 不正确返回任意数

[root@SHELL scripts]# cat test.sh
#!/bin/sh
#from zhang
echo $0
echo $?
teaa   #未知的命令
echo $?
[root@SHELL scripts]# sh test.sh
test.sh
0  #上一条执行成功返回0
test.sh: line 5: teaa: command not found
127  #未知的命令 返回任意数
[root@SHELL scripts]#

  5)$$ 获取脚本的PID 

[root@SHELL scripts]# sh test.sh
test.sh
0
test.sh: line 5: teaa: command not found
127
[root@SHELL scripts]# echo $$ > 1.txt
[root@SHELL scripts]# cat 1.txt
2766
[root@SHELL scripts]# ps -ef | grep 2766
root       2766   2762  0 14:33 pts/0    00:00:00 -bash
root       4622   2766  0 19:48 pts/0    00:00:00 grep 2766

 

四、变量的子串

  1).切片,第一个数字表示从谁开始,第二个数字表示往后几个字符


 [root@SHELL scripts]# name="wo shi ni baba"
 [root@SHELL scripts]# echo $name
 wo shi ni baba

 [root@SHELL scripts]# echo ${name:0:2}

wo
[root@SHELL scripts]# echo ${name:3:2}
sh
[root@SHELL scripts]# echo ${name:3:3}
shi

  2).变量子串匹配()

[root@SHELL scripts]# url=www.sine.com
[root@SHELL scripts]# echo ${url#*.}  #(#表示以谁开头 *数量贪婪,多个的意思 .表示 ".")
sine.com
[root@SHELL scripts]# echo ${url%.*}  #(#表示以谁结尾 其余与上面一直 )
www.sine
[root@SHELL scripts]#

  3).变量子串的替换 /表示惰性匹配,//表示贪婪匹配  

[root@SHELL scripts]# echo ${url}
www.sine.com
[root@SHELL scripts]# echo ${url/w/a}
aww.sine.com
[root@SHELL scripts]# echo ${url}
www.sine.com
[root@SHELL scripts]# echo ${url//w/a}
aaa.sine.com
[root@SHELL scripts]#

 

posted @ 2019-04-03 20:11  骚的刚刚好  阅读(215)  评论(0编辑  收藏  举报
/* 鼠标特效 */