gpt4 book ai didi

linux - 减少 bash 脚本中命令的重复

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:40:48 27 4
gpt4 key购买 nike

我正在编写一个 bash 脚本来增加 VPS 服务器上的/tmp,我想让它更干净/更高效,而无需为选择的任何选项重复相同的命令。现在的结构如下:

#!/bin/bash

showMenu () {
echo "1) Increase /tmp size to 1 GB"
echo "2) Increase /tmp size to 2 GB"
echo "3) Quit"
}
while [ 1 ]
do
showMenu
read CHOICE
case "$CHOICE" in

"1")
/etc/init.d/mysql stop
/etc/init.d/httpd stop
/etc/init.d/cpanel stop
cp -af /var/tmp /var/tmp.bak
umount -l /var/tmp
umount -l /tmp
rm -f /usr/tmpDSK
dd if=/dev/zero of=/usr/tmpDSK bs=1M count=1k
mkfs.ext3 -F /usr/tmpDSK
mount -t ext3 -o nosuid,noexec,loop /usr/tmpDSK /tmp
mount -o bind,noexec,nosuid /tmp /var/tmp
cp -a /var/tmp.bak/* /tmp/
rm -rf /var/tmp.bak/
chmod 1777 /tmp
/etc/init.d/mysql start
/etc/init.d/httpd start
/etc/init.d/cpanel start
df -h
exit 1
;;

"2")
/etc/init.d/mysql stop
/etc/init.d/httpd stop
/etc/init.d/cpanel stop
cp -af /var/tmp /var/tmp.bak
umount -l /var/tmp
umount -l /tmp
rm -f /usr/tmpDSK
dd if=/dev/zero of=/usr/tmpDSK bs=1M count=2k
mkfs.ext3 -F /usr/tmpDSK
mount -t ext3 -o nosuid,noexec,loop /usr/tmpDSK /tmp
mount -o bind,noexec,nosuid /tmp /var/tmp
cp -a /var/tmp.bak/* /tmp/
rm -rf /var/tmp.bak/
chmod 1777 /tmp
/etc/init.d/mysql start
/etc/init.d/httpd start
/etc/init.d/cpanel start
df -h
exit 1
;;

"3")
exit 1
;;
esac
done

在此过程中,我基本上只想启动一次冗余命令。你能给我一个或多个关于执行此操作的最佳方法的想法吗?

谢谢。

最佳答案

听起来很适合 bash function .将代码的主体放在函数中,然后传递大小参数。

关于linux - 减少 bash 脚本中命令的重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11369013/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com