脚本在Linux中,把命令到一个文件中,这样你就可以运行它们作为集团的容易从命令行运行它们,因为你不用一遍又一遍地图的过程。别名也可以用来重复命令容易,但只用于个人命令复杂或难以记住。
在下面的例子中,您将看到bash shell提供了大量的命令进行测试,循环,创建函数和注释脚本。
脚本开始学习最好的方法是提出一些问题,然后试着脚本解决方案。你可以通过学习和练习准备一些基本的脚本技术。
给脚本有意义的名字
脚本应该描述他们所做的名字。例如,一个好名字下面的脚本可能是“广场”,因为它提供的平方在命令行中输入任何号码。
美元猫广场# !/bin/bash数量= 1美元echo $ ^ 2 | bc
运行它……
144广场12美元
分配权限基于谁可以运行脚本
脚本运行,他们需要执行权限。如果你分配750,你和任何人在你的主组可以运行,但是只有你可以编辑它们。
美元chmod 750平方
如果一个脚本没有执行权限,它仍然可以由“采购”。这意味着使用命令如下所示,逐行读取并执行文件内容。
美元。广场144
设置和检查变量
的广场上面的脚本使用变量来捕获数量值提供运行脚本时,会导致一个错误如果没有提供。
$广场(standard_in) 1:语法错误
你可以避免这种错误可能性通过验证,一个论点是提供给脚本。注意:这张支票没有测试提供的参数是否数字。
# !/bin/bash如果[$ # = = 1];然后数量= 1美元echo $ ^ 2 | bc fi数量
在这种情况下,脚本不会结束在一个错误,但只会什么都不做,如果没有输入值,
提示输入参数
另一种方式来处理问题所示广场上面的脚本提示所需的值或提示值只有在没有提供。
# !/bin/bash如果[$ # = = 1];那么其他数量= 1美元echo - n”号广场:“读数字fi echo $ ^ 2 | bc
使用如果命令来运行测试
正如上面的例子所示,您可以使用如果命令来运行测试以确保提供所需参数。如果测试可以用来测试对许多事情。下面的脚本,我们看看在星期五正在运行的脚本。
# !/bin/bash如果[“日期+ %”=“星期五”);然后回声其他发送周报与添加fi每日更新每周报告
使用循环命令等为和而
循环在脚本中可以非常有用,因为它们允许您根据需要多次重复命令或直到你杀了脚本。下面是一些简单的例子使用为命令。第一个穿过每个字母之间的字母暂停10秒钟。第二贯穿系统上的主目录和报告每个使用多少磁盘空间。它应该由sudo因为个人用户将无法访问其他主目录。
第一个脚本:
# !在{/bin/bash x . .z} echo $ x睡眠10
第二个脚本:
# !/bin/bash用户在ls /家庭的du -skh /home/$用户完成
而命令运行只要一些条件仍然是正确的。使用”,而真正的“意味着一个循环将继续,直到遇到一个错误。
# !/bin/bash而真正的睡眠5做了
上面的脚本运行,直到它停止^ c。下面的一个停止的时候完成之前显示一个文件中的每一行的行号。
# !/bin/bash echo - n”文件>“读文件n = 0而读行;((n + +))回声“$ n: $线”做< $文件
添加注释到脚本
评论可以让它更容易为人们(甚至你)去理解或记住一个脚本应该做什么。考虑添加注释,解释脚本的功能或阐明复杂的命令。注释以#开始,但不需要从一行的开始。
# !/bin/bash #计算空间使用的主目录为用户在ls /家庭的du sk /home/$用户#显示每个主目录的大小
验证命令成功运行
你可以很容易地验证一个命令在脚本运行成功通过检查返回代码。在本例中,脚本使用的技术。
# !/bin/bash #创建或更新一个文件如果[$ # = = 1];然后#一个参数预计碰1美元2 > / dev / null
其他的
退出1 fi #报告命令是否成功如果[$ ?情商0]# $ ?触摸命令的返回码然后回声其他“成功创建文件”与“不能创建文件”fi吗
上面所示的脚本试图创建或更新的文件触摸命令。如果触摸命令失败是因为权限问题,返回代码($ ?)不等于0,表示失败。
美元touchFile /etc/whatever不能创建/etc/whatever
发送错误输出到/ dev / null
在触摸命令在之前的例子中,被送到错误输出/ dev / null为了避免错误出现在屏幕上。相反,错误代码为1或更大的结果并非创建一条消息,解释说,文件,可以用于创建“友好的”错误消息。
在需要的时候创建函数调用
函数很容易重复的代码在一个脚本。如果你准备了一个脚本,需要定期创建一个目录,然后进入它cd这样,你可以添加一个函数,然后调用通过一个命令就像“newdir报告”或“newdir备份”。
newdir () {mkdir - p $ 1 cd $ 1}
您可以在命令行上设置和使用功能,但他们不会注销后继续存在。
$ test_function(){呼应,这是一个功能;}test_function美元这是一个函数
总结
一旦你习惯建设,创建脚本,将使日常工作更容易可以既有趣又有利可图。写脚本可以节省你大量的时间和保护的解决问题的技术发展。