标题:
Shell脚本中的函数
[打印本页]
作者:
admin
时间:
2020-1-2 19:58
标题:
Shell脚本中的函数
Shell脚本中的函数:有时脚本中的某段代码总是被重复使用,那么可以将其写成函数,每次要用到时直接调用该函数即可。 例子一: [root@localhost ~]# cat xx.sh #!/bin/bash function
gc_ff
() #自定义函数 { echo "##### Welcome to zhuohua. #####" echo "1: Install Apache" echo "2: Install MySQL" echo "3: Install PHP" echo "4: Exit current script" echo "#####################################" read -p "Enter your choice (1, 2, 3, 4): "
action1
}
gc_ff
#先执行一次函数gc_ff() if [ $
action1
-eq 1 ]; then echo "Installing Apache..." echo "Install Apache completed,enjoy it!" echo ""
gc_ff
#再执行一次函数gc_ff() fi if [ $
action1
-eq 2 ]; then echo "Installing MySQL..." echo "Install MySQL completed,enjoy it!" echo "" echo ""
gc_ff
#再执行一次函数gc_ff() fi if [ $
action1
-eq 3 ]; then echo "Installing PHP..." echo "Install PHP completed,enjoy it!" clear #清屏
gc_ff
#再执行一次函数gc_ff() fi 脚本运行的效果: [root@localhost ~]# bash xx.sh ##### Welcome to zhuohua. ##### 1: Install Apache 2: Install MySQL 3: Install PHP 4: Exit current script ##################################### Enter your choice (1, 2, 3, 4):
1
Installing Apache... Install Apache completed,enjoy it!
##### Welcome to zhuohua. ##### 1: Install Apache 2: Install MySQL 3: Install PHP 4: Exit current script ##################################### Enter your choice (1, 2, 3, 4):
2
Installing MySQL... Install MySQL completed,enjoy it!
##### Welcome to zhuohua. ##### 1: Install Apache 2: Install MySQL 3: Install PHP 4: Exit current script ##################################### Enter your choice (1, 2, 3, 4):
3
Installing PHP... Install PHP completed,enjoy it!
##注释:这里已经被清屏
##### Welcome to zhuohua. ##### 1: Install Apache 2: Install MySQL 3: Install PHP 4: Exit current script ##################################### Enter your choice (1, 2, 3, 4):
4
[root@localhost ~]# ###### ###### 例子二: [root@localhost ~]# cat yy.sh #!/bin/bash function
Gc_ff_1
() #自定义函数 { echo "##### Welcome to zhuohua. #####" echo "1: Install Apache" echo "2: Install MySQL" echo "c: Install PHP" echo "q: Exit current script" echo "#####################################" read -p "Enter your choice (1, 2, c, q): "
Action_1
} function
Gc_ff_2
() #自定义函数 { echo "Installing PHP..." echo "Install PHP completed,enjoy it!" clear #清屏
Gc_ff_1
#再执行一次函数Gc_ff_1() }
Gc_ff_1
#先执行一次函数Gc_ff_1() case $
Action_1
in 1) echo "Installing Apache..." echo "Install Apache completed,enjoy it!" echo ""
Gc_ff_1
#再执行一次函数Gc_ff_1() esac case $
Action_1
in 2) echo "Installing MySQL..." echo "Install MySQL completed,enjoy it!" echo "" echo ""
Gc_ff_1
#再执行一次函数Gc_ff_1() esac case $
Action_1
in c)
Gc_ff_2
#执行一次函数Gc_ff_2() esac case $
Action_1
in q) exit 0 #终止脚本的运行 esac 脚本运行的效果: [root@localhost ~]# bash yy.sh ##### Welcome to zhuohua. ##### 1: Install Apache 2: Install MySQL c: Install PHP q: Exit current script ##################################### Enter your choice (1, 2, c, q):
1
Installing Apache... Install Apache completed,enjoy it!
##### Welcome to zhuohua. ##### 1: Install Apache 2: Install MySQL c: Install PHP q: Exit current script ##################################### Enter your choice (1, 2, c, q):
2
Installing MySQL... Install MySQL completed,enjoy it!
##### Welcome to zhuohua. ##### 1: Install Apache 2: Install MySQL c: Install PHP q: Exit current script ##################################### Enter your choice (1, 2, c, q):
c
Installing PHP... Install PHP completed,enjoy it!
##注释:这里已经被清屏
##### Welcome to zhuohua. ##### 1: Install Apache 2: Install MySQL c: Install PHP q: Exit current script ##################################### Enter your choice (1, 2, c, q):
q
[root@localhost ~]# ###### ###### 例子三: [root@localhost ~]# cat zz.sh #!/bin/bash
Display_Install_Menu_1
() #自定义函数 { echo "##### Install Apache #####" echo "1: Install Apache2.2" echo "2: Install Apache2.4" echo "q: Exit current script" echo "###" read -p "Enter your choice (1, 2, q): "
action1
if [ $
action1
== "1" ]; then echo "You will install Apache2.2" elif [ $
action1
== "2" ]; then echo "You will install Apache2.4" elif [ $
action1
== "q" ]; then exit 0 #终止脚本的运行 fi
Display_Install_Menu_2
#执行一次函数Display_Install_Menu_2() }
Display_Install_Menu_2
() #自定义函数 { echo "##### Install MySQL #####" echo "1: Install MySQL5.5" echo "2: Install MySQL5.6" echo "3: Install MySQL5.7" echo "q: Exit current script" echo "###" read -p "Enter your choice (1, 2, 3, q): "
action2
if [ $
action2
== "q" ]; then exit 0 #终止脚本的运行 fi
Display_Install_Menu_3
#执行一次函数Display_Install_Menu_3() }
Display_Install_Menu_3
() #自定义函数 { echo "##### Install PHP #####" echo "1: Install PHP5.6" echo "2: Install PHP7.0" echo "3: Install PHP7.1" echo "4: Install PHP7.2" echo "q: Exit current script" echo "###" read -p "Enter your choice (1, 2, 3, 4, q): "
action_3
if [ $
action_3
== "q" ]; then exit 1 #终止脚本的运行 fi }
Display_Install_Menu_4
() #自定义函数 { echo "" echo "Installing Apache2.4..." echo "Install Apache2.4 completed,enjoy it!" echo "Installing MySQL5.6..." echo "Install MySQL5.6 completed,enjoy it!" echo "Installing PHP7.2..." echo "Install PHP7.2 completed,enjoy it!" echo "" }
Display_Install_Menu_1
#先执行一次函数Display_Install_Menu_1() if [ $
action1
== "1" ] && [ $
action2
== "1" ] && [ $
action_3
== "1" ]; then echo "" echo "Installing Apache2.2..." echo "Install Apache2.2 completed,enjoy it!" echo "Installing MySQL5.5..." echo "Install MySQL5.5 completed,enjoy it!" echo "Installing PHP5.6..." echo "Install PHP5.6 completed,enjoy it!" echo "" elif [ $
action1
== "2" ] && [ $
action2
== "1" ] && [ $
action_3
== "1" ]; then echo "" echo "Installing Apache2.4..." echo "Install Apache2.4 completed,enjoy it!" echo "Installing MySQL5.5..." echo "Install MySQL5.5 completed,enjoy it!" echo "Installing PHP5.6..." echo "Install PHP5.6 completed,enjoy it!" echo "" elif [ $
action1
== "2" ] && [ $
action2
== "2" ] && [ ${
action_3
} == "4" ]; then Display_Install_Menu_4 #执行一次函数Display_Install_Menu_4() fi 脚本运行的效果: [root@localhost ~]# bash zz.sh ##### Install Apache ##### 1: Install Apache2.2 2: Install Apache2.4 q: Exit current script ### Enter your choice (1, 2, q):
1
You will install Apache2.2
##### Install MySQL ##### 1: Install MySQL5.5 2: Install MySQL5.6 3: Install MySQL5.7 q: Exit current script ### Enter your choice (1, 2, 3, q):
1
##### Install PHP ##### 1: Install PHP5.6 2: Install PHP7.0 3: Install PHP7.1 4: Install PHP7.2 q: Exit current script ### Enter your choice (1, 2, 3, 4, q):
1
Installing Apache2.2... Install Apache2.2 completed,enjoy it! Installing MySQL5.5... Install MySQL5.5 completed,enjoy it! Installing PHP5.6... Install PHP5.6 completed,enjoy it!
[root@localhost ~]# [root@localhost ~]# bash zz.sh ##### Install Apache ##### 1: Install Apache2.2 2: Install Apache2.4 q: Exit current script ### Enter your choice (1, 2, q):
2
You will install Apache2.4
##### Install MySQL ##### 1: Install MySQL5.5 2: Install MySQL5.6 3: Install MySQL5.7 q: Exit current script ### Enter your choice (1, 2, 3, q):
2
##### Install PHP ##### 1: Install PHP5.6 2: Install PHP7.0 3: Install PHP7.1 4: Install PHP7.2 q: Exit current script ### Enter your choice (1, 2, 3, 4, q):
4
Installing Apache2.4... Install Apache2.4 completed,enjoy it! Installing MySQL5.6... Install MySQL5.6 completed,enjoy it! Installing PHP7.2... Install PHP7.2 completed,enjoy it!
[root@localhost ~]# ######
让系统用户使用远程客户端工具SSH登录服务器时,自动运行某个脚本:
先创建一个系统用户zhuohua: [root@localhost ~]# useradd
zhuohua
[root@localhost ~]# 给系统用户zhuohua设置密码: [root@localhost ~]# echo '
123
' | passwd --stdin
zhuohua
更改用户 zhuohua 的密码 。 passwd: 所有的身份验证令牌已经成功更新。
[root@localhost ~]# 查看系统用户zhuohua的家目录: [root@localhost ~]# ls -alh /home/zhuohua/ 总用量 24K drwx------ 3 zhuohua zhuohua 4.0K 6月 23 02:35 . drwxr-xr-x. 6 root root 4.0K 6月 23 02:35 .. -rw-r--r-- 1 zhuohua zhuohua 18 3月 23 2017 .bash_logout
-rw-r--r-- 1 zhuohua zhuohua 176 3月 23 2017 .bash_profile
-rw-r--r-- 1 zhuohua zhuohua 124 3月 23 2017 .bashrc drwxr-xr-x 2 zhuohua zhuohua 4.0K 11月 12 2010 .gnome2 [root@localhost ~]# 原始文件内容: [root@localhost ~]# cat /home/zhuohua/.bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH [root@localhost ~]# 创建脚本存放目录,并存放需要用到的脚本: [root@localhost ~]# mkdir /scripts [root@localhost ~]# cp xx.sh /scripts/ [root@localhost ~]# 设置脚本权限: [root@localhost ~]# ll /scripts/xx.sh -rw-r--r-- 1 root root 797 6月 23 02:37 /scripts/xx.sh [root@localhost ~]# [root@localhost ~]# chmod a+x /scripts/xx.sh [root@localhost ~]# [root@localhost ~]# ll /scripts/xx.sh
-rwxr-xr-x
1 root root 797 6月 23 02:37 /scripts/xx.sh [root@localhost ~]# 让系统用户zhuohua每次登录时,自动运行指定的脚本: [root@localhost ~]# echo 'bash /scripts/xx.sh' >> /home/zhuohua/.bash_profile [root@localhost ~]# [root@localhost ~]# cat /home/zhuohua/.bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH
bash /scripts/xx.sh
[root@localhost ~]# 测试: [root@localhost ~]# su zhuohua [zhuohua@localhost root]$ [zhuohua@localhost root]$
exit
exit
[root@localhost ~]# [root@localhost ~]# su - zhuohua ##### Welcome to zhuohua. ##### 1: Install Apache 2: Install MySQL 3: Install PHP 4: Exit current script ##################################### Enter your choice (1, 2, 3, 4):
1
Installing Apache... Install Apache completed,enjoy it!
##### Welcome to zhuohua. ##### 1: Install Apache 2: Install MySQL 3: Install PHP 4: Exit current script ##################################### Enter your choice (1, 2, 3, 4): ### 尝试让系统用户zhuohua使用远程客户端工具SSH登录服务器:
下载
(25.2 KB)
2023-6-26 17:06
下载
(13.97 KB)
2023-6-26 17:04
至此理应会自动运行脚本“/scripts/xx.sh”:
下载
(48.35 KB)
2023-6-26 17:04
相关文章:
if语句
case语句
用户管理
Python3脚本中的自定义函数
图片附件:
图片3.png
(2023-6-26 17:04, 13.97 KB) / 下载次数 6
http://blog.zhuohua.store/attachment.php?aid=22316&k=e3dac9555200eb1e8d739228b849b0fa&t=1714295720&sid=KK4z89
图片附件:
图片4.png
(2023-6-26 17:04, 48.35 KB) / 下载次数 9
http://blog.zhuohua.store/attachment.php?aid=22317&k=493386dda00e78a1555bd55e8a975412&t=1714295720&sid=KK4z89
图片附件:
图片1.png
(2023-6-26 17:06, 25.2 KB) / 下载次数 5
http://blog.zhuohua.store/attachment.php?aid=22318&k=938bcb94e7b43d42fbcde982eebe5f32&t=1714295720&sid=KK4z89
欢迎光临 blog.zhuohua.store (http://blog.zhuohua.store/)
Powered by Discuz! 7.2