Linux提供了具有强大功能的各种功能强大的Shell,包括Bash,Zsh,Tcsh和Ksh。这些Shell程序最令人惊奇的功能之一就是它们的可编程性。创建简单而有效的Linux Shell脚本来处理日常工作非常容易。此外,对这一主题的一点了解将使您立即成为Linux的高级用户。请和我们一起对Unix Shell脚本进行详细介绍。
20、添加多个值
您可以使用循环获取多个用户输入并将其添加到脚本中。以下示例说明了这一点。
#!/bin/bash
sum=0
for (( counter=1; counter<5; counter++ ))
do
echo -n "输入数字:"
read n
(( sum+=n ))
#echo -n "$counter "
done
printf "\n"
echo "结果是: $sum"
但是,省略(( ))将导致字符串连接而不是加法。因此,请在程序中检查类似这样的事情。
21、Bash中的函数
与任何编程方言一样,函数在Linux Shell脚本中起着至关重要的作用。它们允许管理员创建自定义代码块以供频繁使用。下面的演示将概述功能如何在Linux bash脚本中工作。
#!/bin/bash
function Add()
{
echo -n "输入一个数字: "
read a
echo -n "输入另一个数字: "
read b
echo "相加的结果是: $(( a+b ))"
}
Add
在这里,我们像以前一样添加了两个数字。但是这里我们使用名为Add的函数完成了工作。因此,每当需要再次添加时,都可以调用此函数,而不必再次编写该部分。
22、具有返回值的函数
函数最神奇的功能之一是它们允许将数据从一个函数传递到另一个函数。它在多种情况下很有用。查看下一个示例。
#!/bin/bash
function Greet() {
str="你好 $name, 是什么把你带到 Linux公社?"
echo $str
}
echo "-> 你叫什么名字?"
read name
val=$(Greet)
echo -e "-> $val"
在这里,输出包含从Greet()函数接收的数据。
23、从Bash脚本创建目录
使用Shell脚本运行系统命令的能力使开发人员的工作效率更高。以下简单示例将向您展示如何从Shell脚本中创建目录。
#!/bin/bash
echo -n "输入目录名称 ->"
read newdir
cmd="mkdir $newdir"
eval $cmd
如果仔细观察,此脚本仅调用标准的shell命令mkdir并将其传递给目录名称。该程序应在您的文件系统中创建一个目录。您还可以传递命令以在backticks(“)内部执行,如下所示。
`mkdir $newdir`
24、确认存在后创建目录
如果您当前的工作目录中已经包含一个具有相同名称的文件夹,则上述程序将无法工作。下面的程序将检查是否存在名为$dir的任何文件夹,并且如果找不到则创建一个文件夹。
#!/bin/bash
echo -n "输入目录名称 ->"
read dir
if [ -d "$dir" ]
then
echo "目录已存在"
else
`mkdir $dir`
echo "目录已创建"
fi
使用eval编写此程序可以提高bash脚本编写技能。
25、读取文件
Bash脚本使用户可以非常有效地读取文件。以下示例将展示如何使用Shell脚本读取文件。创建一个名为linuxidc.com.txt的文件,其中包含以下内容。
1.Vim
2.nano
3.linuxidc
4.CentOS
5.Ubuntu
6.Emacs
该脚本将输出以上6行中的每行。
#!/bin/bash
file='linuxidc.com.txt'
while read line; do
echo $line
done < $file
26、删除文件
以下程序将演示如何在Linux Shell脚本中删除文件。该程序将首先要求用户提供文件名作为输入,如果存在则将其删除。Linux rm命令在此处进行删除。
#!/bin/bash
echo -n "输入文件名 ->"
read name
rm -i $name
让我们输入linuxidc.com.txt作为文件名,并在询问确认时按y。它应该删除文件。
27、附加到文件
下面的Shell脚本示例将向您展示如何使用bash脚本将数据追加到文件系统上的文件。它将在先前的linuxidc.com.txt文件中增加一行。
#!/bin/bash
echo "在追加文件之前"
cat linuxidc.com.txt
echo "7. C++" >> linuxidc.com.txt
echo "追加文件后"
cat linuxidc.com.txt
您现在应该注意到,我们正在直接使用Linux bash脚本中的日常终端命令。
28、测试文件的存在
下一个shell脚本示例显示了如何从bash程序检查文件是否存在。
#!/bin/bash
filename="/etc/hosts"
if [ -f "$filename" ]; then
echo "文件已经存在"
else
echo "文件不存在"
fi
我们直接从命令行传递文件名作为参数。
29、解析日期和时间
这个bash脚本示例将向您展示如何使用脚本处理日期和时间。Linux date命令用于获取必要的信息,我们的程序执行解析。