重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:空间域名、网站空间、营销软件、网站建设、龙井网站维护、网站推广。
什么是Shell脚本
示例:
#!/bin/sh
cd~
mkdirshell_tut
cdshell_tut
for((i=0;i<10;i++));do
touchtest_$i.txt
done
示例解释
第1行:指定脚本解释器,这里是用/bin/sh做解释器的
第2行:切换到当前用户的home目录
第3行:创建一个目录shell_tut
第4行:切换到shell_tut目录
第5行:循环条件,一共循环10次
第6行:创建一个test_1…10.txt文件
第7行:循环体结束
cd,mkdir,touch都是系统自带的程序,一般在/bin或者/usr/bin目录下。for,do,done是sh脚本语言的关键字。
shell和shell脚本的概念
shell是指一种应用程序,这个应用程序供给了一个界面,用户经过这个界面拜访操作系统内核的效劳。KenThompson的sh是第一种UnixShell,WindowsExplorer是一个典型的图形界面Shell。
shell脚本(shell
script),是一种为shell编写的脚本程序。业界所说的shell通常都是指shell脚本,但读者朋友要知道,shell和shell
script是两个不同的概念。由于习惯的原因,简洁起见,本文出现的“shell编程”都是指shell脚本编程,不是指开发shell自身(如
WindowsExplorer扩展开发)。
环境
shell编程跟java、php编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。
OS
当前主流的操作系统都支持shell编程,本文档所述的shell编程是指Linux下的shell,讲的基本都是POSIX标准下的功能,所以,也适用于Unix及BSD(如MacOS)。
定义变量
定义变量时,变量名不加美元符号($),如:
your_name="qinjx"
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。
除了显式地直接赋值,还可以用语句给变量赋值,如:
forfilein`ls/etc`
使用变量
使用一个定义过的变量,只要在变量名前面加美元符号即可,如:
your_name="qinjx"
echo$your_name
echo${your_name}
变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:
forskillinAdaCoffeActionJavado
echo"Iamgoodat${skill}Script"
done
如果不给skill变量加花括号,写成echo"Iamgoodat$skillScript",解释器就会把$skillScript当成一个变量(其值为空),代码执行结果就不是我们期望的样子了。
推荐给所有变量加上花括号,这是个好的编程习惯。IntelliJIDEA编写shellscript时,IDE就会提示加花括号。
重定义变量
已定义的变量,可以被重新定义,如:
your_name="qinjx"
echo$your_name
your_name="alibaba"
echo$your_name
这样写是合法的,但注意,第二次赋值的时候不能写$your_name="alibaba",使用变量的时候才加美元符。
单引号
str='thisisastring'
单引号字符串的限制:
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的
单引号字串中不能出现单引号(对单引号使用转义符后也不行)
双引号
your_name='qinjx'
str="Hello,Iknowyourare\"$your_name\"!\n"
双引号里可以有变量
双引号里可以出现转义字符
字符串操作
拼接字符串
your_name="qinjx"
greeting="hello,"$your_name"!"
greeting_1="hello,${your_name}!"
echo$greeting$greeting_1
获取字符串长度:
string="abcd"
echo${#string}#输出:4
提取子字符串
string="alibabaisagreatcompany"
echo${string:1:4}#输出:liba
查找子字符串
string="alibabaisagreatcompany"
echo`exprindex"$string"is`#输出:8,这个句子的意思是:找出单词is在这名话中的方位.
原文链接:http://www.magedu.com/71404.html
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。