前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Shell脚本入门

Shell脚本入门

原创
作者头像
风研雨墨
发布2018-07-24 17:39:12
5840
发布2018-07-24 17:39:12
举报

介绍

Shell脚本可用于运行多个命令,广泛适用于困难参数的单个命令,或用于分发工作的更友好的用户界面。本质上讲,它可以通过自动化来简化您不必手动完成操作。

设置文件夹

在开始编写shell脚本之前,最好给其指定一个文件夹。对于个人脚本,建议您在~/bin中执行此操作。要创建该文件夹,请运行:

代码语言:javascript
复制
mkdir ~/bin

要使脚本在系统中的任何位置运行,请运行以下命令编辑/etc/profile

代码语言:javascript
复制
sudo nano /etc/profile

然后将以下行添加到文件的末尾:

代码语言:javascript
复制
PATH=$PATH:$HOME/bin
export PATH

记住要按CTRL + O保存并按CTRL + X退出。您可以通过运行以下命令使更改生效:

代码语言:javascript
复制
source /etc/profile

如果您的Linux发行版不支持source命令,您还可以通过输入以下命令重新启动VPS:

sudo reboot

创建文件

要启动shell脚本,您需要创建一个可执行文件。通过运行以下命令来实现:

代码语言:javascript
复制
touch ~/bin/firstscript
chmod +x ~/bin/firstscript

打开nano文本编辑器以开始添加命令:

代码语言:javascript
复制
nano ~/bin/firstscript

要使程序加载器识别为shell脚本并从右侧目录运行命令,您必须将以下行添加到文件的顶部:

代码语言:javascript
复制
#!/bin/sh

并且您已准备好添加您想要的任何Linux命令,例如:

代码语言:javascript
复制
clear
echo “Hello World!”

在保存(CTRL + O)并退出(CTRL + X)nano后,要运行脚本,只需输入:

代码语言:javascript
复制
firstscript

在您系统中的任意位置执行,结果应该是这样的:

示例脚本

shell脚本的一个要点是为重复性任务制作快捷方式。例如,如果您要将大量文件移动到~/backup文件夹,则可以设置一个脚本,该脚本只会丢弃您指定的任何内容。可以输入以下内容完成:

代码语言:javascript
复制
filebackup file-name1 file-name2...

之后,当你需要它时,它就会在那里。在我们开始编写代码之前,先来看看需要学习什么。编写好的shell脚本不是单纯的硬编码。在此示例的范围内,如果要更改备份文件夹,只需更改脚本中的第一行即可轻松完成。一旦您现在习惯了,它会在以后会有很大帮助。要测试此脚本,你不需要跳转到文本编辑器,直接可从命令行输入:

代码语言:javascript
复制
testvariable=teststring

echo命令通过运行以下内容输出文本:

代码语言:javascript
复制
echo $testvariable

您将能够看到为其设置的值,在本例中为teststring。现在您可以按照您的习惯开始编写代码了。

代码语言:javascript
复制
touch ~/bin/filebackup
chmod +x ~/bin/filebackup
nano ~/bin/filebackup

请记住,任何以“#”开头的给定行都是注释。它不会以任何方式影响你的程序,除非它在程序的第一行后面有一个感叹号变成“shebang”;如前面介绍过的!/bin/sh行。以下是脚本的例子:

代码语言:javascript
复制
#!/bin/sh
#Backup script
#Description: makes a copy of any given file at the backup folder
#Author: Your Name
#Date: 8/10/2013
​
#Backup folder; set this variable to any folder you have write permissions on
BACKUPFOLDER=~/backup
​
#The script will make sure the folder exists
mkdir -p $BACKUPFOLDER
​
#Now the script will copy the given file to the folder
cp -a $@ $BACKUPFOLDER

现在,在您保存(CTRL+O)并退出(CTRL+X)后,让我们检查代码。前几行只是注释。然后,我们使用BACKUPFOLDER变量指定了我们希望备份文件的位置。运行mkdir -p $BACKUPFOLDER这样做是因为它会创建一个文件夹,但是如果文件夹已经存在则不会发出任何错误。在下一个命令cp中,我们用$@放置用脚本调用的每个参数。此内容的参数是在调用脚本进行备份后放置的所有文件名。在那之后是目标文件夹,在此例中是$BACKUPFOLDER。您现在可以通过运行来测试脚本:

代码语言:javascript
复制
filebackup file1 file2

您可以根据需要为该行添加任意数量的文件,并将它们全部复制到备份文件夹中。

结论

Shell脚本在Linux系统上无处不在。它们非常简单,并具有很高的可用性。本教程仅涵盖基础知识,你可以去腾讯云+社区腾讯云学院学习更多知识。


参考文献:《How To Write a Simple Shell Script on a VPS》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 设置文件夹
  • 创建文件
  • 示例脚本
  • 结论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档