前言:
当前大家对“centoslo网卡内容”可能比较着重,我们都需要了解一些“centoslo网卡内容”的相关资讯。那么小编同时在网上网罗了一些对于“centoslo网卡内容””的相关知识,希望姐妹们能喜欢,同学们快快来学习一下吧!脚本中定义及使用函数
函数在使用前必须定义,因此应将函数定义放在脚本开始部分,直至shell首次发现它后才能使用,调用函数仅使用其函数名即可
#!/bin/bash#********************************************************************#Author: wei#FileName: func.sh#********************************************************************hello () { echo "Hello there today's date is `date +%F`"}echo "now going to the function hello"helloecho "back from the function"[root@cent7 ~]#bash func1.shnow going to the function helloHello there today's date is 2021-05-29back from the function [root@C17-17 scripts]#cat func.sh#!/bin/bash#********************************************************************#Author: wei#FileName: func.sh#********************************************************************hello () { echo "Hello there today's date is `date +%F`"}echo "now going to the function hello"helloecho "back from the function"hello[root@C17-17 scripts]#bash func.shnow going to the function helloHello there today's date is 2023-11-06back from the functionHello there today's date is 2023-11-06
系统初始化脚本
#!/bin/bash#********************************************************************#Author: wei#FileName: init.sh#********************************************************************disable_selinux(){ sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config echo "SElinux已禁用,重新启动后才可生效"}disable_firewall(){ systemctl disable --now firewalld &> /dev/null echo "防火墙已禁用"}set_ps1() { echo 'PS1="\[\e[1;35m\][\u@\h \W]\\$\[\e[0m\]"' > /etc/profile.d/reset.sh echo "提示符已修改成功,请重新登录生效"}set_eth(){ sed -i.bak '/GRUB_CMDLINE_LINUX=/s#"$# net.ifnames=0"#' /etc/default/grub grub2-mkconfig -o /boot/grub2/grub.cfg &> /dev/null echo "网络名称已修改成功,请重新启动才能生效"}PS3="请选择相应的编号(1-6): "MENU='禁用SELinux关防火墙修改提示符修改网卡名以上全实现退出'select M in $MENU ;docase $REPLY in1) disable_selinux ;;2) disable_firewall ;;3) set_ps1 ;;4) set_eth ;;5) disable_selinux disable_firewall set_ps1 set_eth ;;6) break ;;*) echo "请输入正确的数字"esacdone[root@C17-17 scripts]#bash init.sh1) 禁用SELinux 3) 修改提示符 5) 以上全实现2) 关防火墙 4) 修改网卡名 6) 退出请选择相应的编号(1-6): 1SElinux已禁用,重新启动后才可生效请选择相应的编号(1-6): 3提示符已修改成功,请重新登录生效请选择相应的编号(1-6): 9请输入正确的数字请选择相应的编号(1-6): 6
函数参数
函数可以接受参数
传递参数给函数: 在函数名后面以空白分隔给定参数列表即可,如: testfunc arg1 arg2 ....在函数体中当中,可使用$1,$2,...调用这些参数;还可以使用$@,$* .$#等特殊变量
$$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 $@ 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 $# 添加到Shell的参数个数 $0 Shell本身的文件名 $1~$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数…。#在脚本中添加set -x可以进行每一行的调试实现进度条功能
#!/bin/bash#********************************************************************#Author: wei#FileName: progress_chart.sh#********************************************************************function print_chars () { #传入的第一个参数指定要打印的字符串 local char="$1" #传入的第二个参数指定要打印多少次指定的字符串 local number="$2" local c for (( c=0;c<number;++c ));do printf "$char" done}COLOR=32declare -i end=50for ((i=1;i<=end;++i));do printf "\e[1;${COLOR}m\e[80D[" print_chars "#" $i print_chars " " $((end - i)) printf "] %3d%%\e[0m" $((i*2)) sleep 0.1sdoneecho #bash progress_chart.sh[##################################################] 100% [root@C17-17 scripts]#cat progress_chart.sh#!/bin/bash#********************************************************************#Author: wei#FileName: progress_chart.sh#********************************************************************function print_chars () { #传入的第一个参数指定要打印的字符串 local char="$1" #传入的第二个参数指定要打印多少次指定的字符串 local number="$2" local c for (( c=0;c<number;++c ));do printf "$char" done}COLOR=32declare -i end=50for ((i=1;i<=end;++i));do printf "\e[1;${COLOR}m\e[80D[" print_chars "#" $i print_chars " " $((end - i)) printf "] %3d%%\e[0m" $((i*2)) sleep 0.1sdoneecho[root@C17-17 scripts]#bash progress_chart.sh[##################################################] 100%[root@C17-17 scripts]#
[root@C17-17 scripts]#cat progress_chart1.sh#!/bin/bash#********************************************************************#Author: wei#FileName: progress_chart.sh#********************************************************************function print_chars(){ #传入的第一个参数指定要打印的字符串 local number="$2" local c for (( c=0;c < number;++c ));do printf "$char" done}COLOR=32declare -i end=50for (( i=1; i <= end ;++i));do printf "\e[1;${COLOR}m\e[80D[" print_chars "#" $i print_chars " " $((end - i)) printf "] %3d%%\e[0m" $((i * 2)) sleep 0.1sdoneecho[root@C17-17 scripts]#bash progress_chart1.sh[] 100%
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #centoslo网卡内容