本文由 [茶话汇] – [Qing] 编译自 [Avishek Kumar] 转载请注明出处
bash关键字
[code language=”bash”]
! esac select { }
c fi then [[
do for until ]]
done function while elif
if time else in
[/code]
与其它语言不同,bash允许将关键字用于变量的命名,虽然这样会降低脚本的可读性。为了保持脚本的可读性,程序员们应该避免这样子做。
命令在脚本中的执行方式是$(命令)。为了保证命令可以正确被执行,你或许应该包含命令的绝对路径,如$(/bin/date)。
你可以通过“whereis”来查询一个命令的绝对路径,如 whereis date
[code language=”bash”]
[root@tecmint /]# whereis date
date: /bin/date /usr/share/man/man1/date.1.gz
[/code]
切换目录
这个脚本的作用是从当前目录向上切换N层。
[code language=”bash”]
#! /bin/bash
LEVEL=1
for ((i = 1; i <= LEVEL; i++))
do
CDIR=../CDIR
done
cd CDIR
echo "You are in: "PWD
exec /bin/bash
[/code]
将上面的代码保存成“up.sh”,并赋予可执行的权限(chmod 755 up.sh)。
./up.sh 2 从当前目录向上切换2层。
./up.sh 4 从当前目录向上切换4层。
输出结果:
[code language=”bash”]
[root@tecmint /]# chmod 755 up
[root@tecmint /]# ./up.sh 2
You are in: /
[root@tecmint /]# ./up.sh 4
You are in: /
[root@tecmint /]#
[/code]
你可以从这里下载这个例子的代码。
随机生成目录或文件
[code language=”bash”]
#! /bin/bash
echo "Hello USER";
echo "(uptime)" >> "(date)".txt
echo "Your File is being saved to(pwd)"
[/code]
这个脚本看起来简单,但其背后包含的东西并不简单。
echo:打印包含在其后的引号中的任何东西。
$:引导一个变量。
>>:重定向符号。
上面的脚本将update的输出结果保存到一个文件中,这个文件的名称是以当前的系统时间命名的。
输出结果:
[code language=”bash”]
[root@tecmint /]# ./randomfile.sh
Hello server
Your File is being saved to /home/server/Desktop
[/code]
你可以从这里下载这个例子的代码。
收集网络信息
这个脚本可以收集网络服务器的信息。因为这个脚本的行数比较多,这里就不列出来了。你可以从后面的链接中下载整个脚本。
注意:或许在运行这个脚本的时候,你需要安装lsb-core包。你可以使用apt(Ubuntu或者Debian)或者yum(Fedora)来安装。
输出结果:
[code language=”bash”]
[root@tecmint /]# ./collectnetworkinfo.sh
The Network Configuration Info Written To network.20-07-13.info.txt.
Please email this file to your_name@service_provider.com. ktop
[/code]
你可以更改脚本中的邮件,以便将结果发送到你的邮箱。
你可以从这里下载这个例子的代码。
将大写字母转换成小写字母
这个脚本可以将一个文件中的大写字母全部转换成小写,并保存到文件“small.txt”中。
[code language=”bash”]
#!/bin/bash
echo -n "Enter File Name : "
read fileName
if [ ! -f fileName ]; then
echo "FilenamefileName does not exists"
exit 1
fi
tr ‘[A-Z]’ ‘[a-z]’ < $fileName >> small.txt
[/code]
输出结果:
[code language=”bash”]
[root@tecmint /]# ./convertlowercase.sh
Enter File Name : a.txt
Initial File:
A
B
C
D
E
F
G
H
I
J
K
…
[/code]
文件“small.txt”中包含的输出结果:
[code language=”bash”]
a
b
c
d
e
f
g
h
i
j
k
…
[/code]
你可以从这里下载这个例子的代码。
简易计算器
[code language=”bash”]
#! /bin/bash
clear
sum=0
i="y"
echo " Enter one no."
read n1
echo "Enter second no."
read n2
while [ i = "y" ]
do
echo "1.Addition"
echo "2.Subtraction"
echo "3.Multiplication"
echo "4.Division"
echo "Enter your choice"
read ch
casech in
1)sum=`expr n1 +n2`
echo "Sum ="sum;;
2)sum=`exprn1 – n2`
echo "Sub = "sum;;
3)sum=`expr n1 /*n2`
echo "Mul = "sum;;
4)sum=`exprn1 / n2`
echo "Div = "sum;;
*)echo "Invalid choice";;
esac
echo "Do u want to continue (y/n)) ?"
read i
if [ $i != "y" ]
then
exit
fi
done
[/code]
输出结果:
[code language=”bash”]
[root@tecmint /]# ./simplecalc.sh
Enter one no.
12
Enter second no.
14
1.Addition
2.Subtraction
3.Multiplication
4.Division
Enter your choice
1
Sum =26
Do u want to continue (y/n)) ?
y
1.Addition
2.Subtraction
3.Multiplication
4.Division
Enter your choice
3
mul = 14812
Do u want to continue (y/n)) ?
n
[/code]
你可以从这里下载这个例子的代码。
本文链接:http://www.yunweipai.com/3617.html
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/53212.html