这是一个新教程系列的开始。在这一篇中,你将熟悉bash脚本。
本系列假设你对Linux终端比较熟悉。你何必精通,但了解基础知识会挺好。我建议阅读终端基础知识系列。
这个系列适宜谁?
任何想开始学习BashShell脚本的人。
假如你是一名将Shell脚本作为课程的一部份的中学生,这么本系列适宜你。
假如你是普通的桌面Linux用户,本系列将帮助你了解在探求各类软件和修补程序时碰到的大多数Shell脚本。你还可以使用它来手动执行一些常见的重复性任务。
到本Bash基础系列结束时,你应当才能编撰简单到中等水平的Bash脚本。
该系列的所有章节都有示例练习,你可以边做边学。
你将在这儿学习BashShell脚本。其实还有句型基本相同的其他Shell,但它们的行为在个别方面一直存在差别。Bash是最常见和通用的Shell,因而学习Shell脚本从Bash开始吧。
你的第一个Shell脚本:HelloWorld!
打开一个终端。现今创建一个新目录来保存你将在本系列中创建的所有脚本:
mkdir bash_scripts
如今切换到这个新创建的目录:
cd bash_scripts
让我们在这儿创建一个新文件:
touch hello_world.sh
如今,编辑该文件并向其中添加一行echoHelloWorld。你可以使用cat命令的追加模式(使用>)执行此操作:
[abhishek@itsfoss]:~/bash_scripts$ cat > hello_world.sh
echo Hello World
^C
我更喜欢在使用cat命令添加文本时添加新行。
按Ctrl+C或Ctrl+D键退出cat命令的追加模式。如今,假如你查看脚本hellow_world.sh的内容,你应当只听到一行。
关键时刻来了。你已然创建了第一个Shell脚本。是时侯运行Shell脚本了。
这样做:
bash hello_world.sh
echo命令只是显示提供给它的任何内容。在这些情况下,Shell脚本应当在屏幕上输出“HelloWorld”。
恭喜!你刚才成功运行了第一个Shell脚本。多么酷啊!
以下是上述所有命令的重放linux伊甸园论坛,供你参考。
另一种运行Shell脚本的方式
大多数时侯,你将以这些方法运行Shell脚本:
./hello_world.sh
这将形成错误,由于作为脚本的文件还没有执行权限。
bash: ./hello_world.sh: Permission denied
给脚本添加执行权限:
chmod u+x hello-world.sh
如今,你可以像这样运行它:
./hello_world.sh
因而,你学习了两种运行Shell脚本的方式。是时侯让我们将注意力转到Bash了。
把你的Shell脚本弄成Bash脚本
倍感困扰?实际上,Linux中有几种可用的Shell。Bash、Ksh、Csh、Zsh等等。其中,Bash是最受欢迎的,几乎所有发行版都默认安装了它。
Shell是一个协程。它接受并运行Linux命令。其实大多数Shell的句型保持不变,但它们的行为在个别点上可能有所不同。诸如,条件逻辑中括弧的处理。
这就是为何告诉系统使用那个Shell来解释脚本很重要。
当你使用bashhello_world.sh时,你明晰地使用了Bash类库。
然而当你以这些方法运行Shell脚本时:
./hello_world.sh
系统将使用你当前使用的任何Shell来运行脚本。
为防止因为不同的句型处理而造成毋须要的意外,你应当明晰告诉系统它是那个shell脚本。
如何做?使用释伴(#!)。一般,#用于Shell脚本中的注释。并且,假如#!用作程序的第一行,它的特殊用途是告诉系统使用那个Shell。
因而,修改hello_world.sh的内容,使其看上去像这样:
#!/bin/bash
echo Hello World
如今,你可以像往常一样运行Shell脚本linux c执行shell命令linux c执行shell命令,由于你晓得系统将使用BashShell来运行脚本。
假如你认为在终端中编辑脚本文件不便捷,作为桌面Linux用户,你可以使用Gedit或其他GUI文本编辑器编撰脚本并在终端中运行。
️练习时间
是时侯练习你学到的东西了。以下是该级别的一些基本练习:
答案可以在社区峰会的这个专门的贴子中讨论。
最后一个练习使用$USER。这是一个复印用户名的特殊变量。
这就引出了Bash基础系列下一章的主题:变量。
请继续关注下边的内容。
(题图:MJ/c8f6458a-84fe-4f77-9a9c-f82fef611935)
via:
作者:AbhishekPrakash选题:lkxed译者:geekpi校对:wxy
本文由LCTT原创编译,Linux中国荣誉推出