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


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

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

运维Shell脚本小试牛刀(三)::$(cd $(dirname $0); pwd)命令详解

运维Shell脚本小试牛刀(四): 多层嵌套if...elif...elif....else fi_蜗牛杨哥的博客-CSDN博客

Cenos7安装小火车程序动画

运维Shell脚本小试牛刀(五):until循环

运维Shell脚本小试牛刀(六): Shell中的函数认知

运维Shell脚本小试牛刀(七):从函数文件中调用另外一个脚本文件中函数

运维Shell脚本小试牛刀(八): case模式忽略命令行参数大小写演示

运维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<LD_PRELOAD> 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
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值