运维Shell脚本小试牛刀(一)



运维Shell脚本小试牛刀(一)

运维Shell脚本小试牛刀(二)





一: Shell中循环剖析 for 循环.......

#!/bin/bash -

#==================================================================================================================

FILE: countloop.sh

USAGE: ./countloop.sh

DESCRIPTION:

OPTIONS: -------

REQUIREMENTS: ---------

BUGS: ------

NOTES: --------

AUTHOR: ---------YangGe (TOM) ,YangGe.freedom@icloud.com

ORGANIZATION:

CREATED: 2023-8-24 09:11:20

REVISION: --------

#====================================================================================================================

for i in 1 2 3 4 5 6 #循环1~6

do

echo "Thre for loop is run $i times."

done

echo "==============================================================================================================="

for linux in Debian Redhat Suse Fedora Centos7 Ubunto

do

echo "current out system is ${linux}....."

done

echo "================================================================================================================"



#!/bin/bash -

#==================================================================================================================

FILE: orcmdssub.sh

USAGE: ./forcmdssub.sh

DESCRIPTION:

OPTIONS: -------

REQUIREMENTS: ---------

BUGS: ------

NOTES: --------

AUTHOR: ---------YangGe (TOM) ,YangGe.freedom@icloud.com

ORGANIZATION:

CREATED: 2023-8-24 09:11:20

REVISION: --------

#====================================================================================================================

echo "Printing file list in /etc directory........"

for file in `ls /etc/*`

do

echo "current print file is: $file"

done



#!/bin/bash -

#==================================================================================================================

FILE: forcmdssub.sh

USAGE: ./forcmdssub.sh

DESCRIPTION:

OPTIONS: -------

REQUIREMENTS: ---------

BUGS: ------

NOTES: --------

AUTHOR: ---------YangGe (TOM) ,YangGe.freedom@icloud.com

ORGANIZATION:

CREATED: 2023-8-24 09:11:20

REVISION: --------

#====================================================================================================================

echo "Printing file list in /etc directory........"

for file in `ls /etc/*`

do

echo "current print file is: $file"

done

root@www shelldic\]# cat forvarscoutents.sh #!/bin/bash - #================================================================================================================== # # # FILE: forvarscoutents.sh # USAGE: ./forvarscoutents.sh # DESCRIPTION: # OPTIONS: ------- # REQUIREMENTS: --------- # # BUGS: ------ # NOTES: -------- # AUTHOR: ---------YangGe (TOM) ,YangGe.freedom@icloud.com # ORGANIZATION: # CREATED: 2023-8-24 09:11:20 # REVISION: -------- # # # # # #==================================================================================================================== filenames="/etc/my.cnf /etc/vconsole.conf /etc/rsyncd.conf /etc/sestatus.conf /usr/local/rs.conf" # 上面的文件名以空格分割 for file in $filenames do \[ -f $file \] \&\& echo "The file $file was found.." \|\| echo "\*\*\*\*\* ERROR: The file $file was missing.....\*\*\*\*\*\*\*" # 如果是文件,则打印文件存在,如果不存在则打印丢失 done


#!/bin/bash -

#==================================================================================================================

FILE: simplenestedfor.sh

USAGE: ./simplenestedfor.sh

DESCRIPTION:

OPTIONS: -------

REQUIREMENTS: ---------

BUGS: ------

NOTES: --------

AUTHOR: ---------YangGe (TOM) ,YangGe.freedom@icloud.com

ORGANIZATION:

CREATED: 2023-8-24 09:11:20

REVISION: --------

#====================================================================================================================

for (( i = 0; i < 30; i++ )) #外循环

do

for (( j=0; j<160; j++ )) # 内循环

do

echo -n "* " #

done

echo "" #

done




二 : while循环



#!/bin/bash -

#==================================================================================================================

FILE: whichreadfile.sh

USAGE: ./whichreadfile.sh

DESCRIPTION:

OPTIONS: -------

REQUIREMENTS: ---------

BUGS: ------

NOTES: --------

AUTHOR: ---------YangGe (TOM) ,YangGe.freedom@icloud.com

ORGANIZATION:

CREATED: 2023-8-24 09:11:20

REVISION: --------

#====================================================================================================================

file=$1 # 将位置参数1的值赋值给变量file

if [ $# -lt 1 ];then # 如果脚本未指定参数,则打印使用方法并退出运行

echo "Usage: $0 FILEPATH"

exit

fi

while read -r line # 使用read命令从标准输入读取文件的一行,并赋值给变量line

do

echo $line # 打印读取的行

done < "$file"


root@www shelldic\]# cat whilereadfile.sh #!/bin/bash - #================================================================================================================== # # # FILE: whichreadfile.sh # USAGE: ./whichreadfile.sh # DESCRIPTION: # OPTIONS: ------- # REQUIREMENTS: --------- # # BUGS: ------ # NOTES: -------- # AUTHOR: ---------YangGe (TOM) ,YangGe.freedom@icloud.com # ORGANIZATION: # CREATED: 2023-8-24 09:11:20 # REVISION: -------- # # # # # #==================================================================================================================== file=$1 # 将位置参数1的值赋值给变量file if \[ $# -lt 1 \];then # 如果脚本未指定参数,则打印使用方法并退出运行 echo "Usage: $0 FILEPATH" exit fi while read -r line # 使用read命令从标准输入读取文件的一行,并赋值给变量line do echo $line # 打印读取的行 done \< "$file"

root@www shelldic\]#**./whilereadfile.sh /etc/sudo.conf** # # Default /etc/sudo.conf file # # Format: # Plugin plugin_name plugin_path plugin_options ... # Path askpass /path/to/askpass # Path noexec /path/to/sudo_noexec.so # Debug sudo /var/log/sudo_debug all@warn # Set disable_coredump true # # Sudo plugins: # # The plugin_path is relative to ${prefix}/libexec unless fully qualified. # The plugin_name corresponds to a global symbol in the plugin # that contains the plugin interface structure. # The plugin_options are optional. # # The sudoers plugin is used by default if no Plugin lines are present. Plugin sudoers_policy sudoers.so Plugin sudoers_io sudoers.so # # Sudo askpass: # # An askpass helper program may be specified to provide a graphical # password prompt for "sudo -A" support. Sudo does not ship with its # own passpass program but can use the OpenSSH askpass. # # Use the OpenSSH askpass #Path askpass /usr/X11R6/bin/ssh-askpass # # Use the Gnome OpenSSH askpass #Path askpass /usr/libexec/openssh/gnome-ssh-askpass # # Sudo noexec: # # Path to a shared library containing dummy versions of the execv(), # execve() and fexecve() library functions that just return an error. # This is used to implement the "noexec" functionality on systems that # support C\ or its equivalent. # The compiled-in value is usually sufficient and should only be changed # if you rename or move the sudo_noexec.so file. # #Path noexec /usr/libexec/sudo_noexec.so # # Core dumps: # # By default, sudo disables core dumps while it is executing (they # are re-enabled for the command that is run). # To aid in debugging sudo problems, you may wish to enable core # dumps by setting "disable_coredump" to false. # # Set to false here so as not to interfere with /proc/sys/fs/suid_dumpable # Set disable_coredump false

相关推荐
杂化轨道VSEPR9 分钟前
基站计数器与KPI:移动通信网络性能评估的核心引擎
运维·服务器·网络·5g·信息与通信
Starry_hello world10 分钟前
Linux 进程地址空间
linux·笔记·有问必答
撬动未来的支点21 分钟前
【Linux】Linux驱动开发与BSP开发:嵌入式系统的两大基石
linux·驱动开发
jz_ddk36 分钟前
[LVGL] 从0开始,学LVGL:基础构建篇 - 掌握UI的核心构建块
linux·网络协议·ui·rpc·嵌入式·gui·lvgl
ding_zhikai2 小时前
SD:在一个 Ubuntu 系统安装 stable diffusion ComfyUI
linux·ubuntu·stable diffusion
似水এ᭄往昔2 小时前
【Linux】——基础指令(下)
linux·服务器
大锦终2 小时前
【Linux】udp网络程序
linux·运维·服务器·网络
罗政2 小时前
【免费】轻量级服务器centos监控程序+内存+cpu+nginx+适合小型站长使用
服务器·nginx·centos
CryptoRzz3 小时前
欧美(美股、加拿大股票、墨西哥股票)股票数据接口文档
java·服务器·开发语言·数据库·区块链
arvin_xiaoting3 小时前
#zsh# #Ubuntu# 一键安装zsh、oh-my-zsh、常用插件
linux·ubuntu·elasticsearch