包含标签 bash articles

linux下powerpath对盘与更改盘符名

现网的几套oracle rac环境下经常会有EMC存储扩盘动作,而EMC的powerpath软件本身也会存在软件版本升级的问题。每次操作时都会担心盘符变动和一套rac下的几个节点盘符名一致的问题。通过EMC的powerpath内的emcpadm 与powermt 命令可以快速的解决该问……

Continue reading

Bash脚本15分钟进阶指导

首先声明这是网上摘来的。这里的技术技巧最初是来自谷歌的“Testing on the Toilet” (TOTT)。这里是一个修订和扩增版本。 脚本安全 我的所有bash脚本都以下面几句为开场白: 1#!/bin/bash 2set -o nounset 3set -o errexit 这样做会避免两种常见的问题: 引用未定义的变量(缺省值为“”) 执行失败的命令被忽略 需要注意……

Continue reading

shell中的getopt与getopts

在shell脚本之shift和getopts篇中有提到getopts,除了bash自带的内部变量getopts外,util-linux-ng包还提供了一个工具getopt ,该工具较bash内置的getopts更强大,其不仅支持短参-s,还支持–longopt的长参数,甚至支持-l……

Continue reading

shell脚本之shift和getopts

在系统服务和一些其他脚本中都可以看到shift和getopts参数的使用,尤其是前者。本篇就针对两者在linux shell 下的使用做下小结。 一、shift参数的使用 很多脚本执行的时候我们并不知道后面参数的个数,但可以使用$*来获取所有参数。但在程序处理的过程中有时需要逐个的将$1、$2、……

Continue reading

select与shell脚本交互界面

在shell 脚本执行过程中,经常会用到需要自我判读的人机交互的界面。而常用的交互界面有以下几种情况: 1、入参检查,$#是入参数量;$1,$2分别表示第一和第二个入参,以此类推;$0表示命令名称。这种一般会用于参数不足提示帮助信息的情况。 2、read读取用户输入的字符串,可以带提示……

Continue reading

shell数组的定义与应用

bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。shell 下的多维数组是可以通过1维数组组合的,本篇也会在后面提到多维数据。 一、定义数组 在Shel……

Continue reading

BASH的常见错误

1. for i in `ls *.mp3` 常见的错误写法: 1for i in `ls *.mp3`; do # Wrong! 为什么错误呢?因为for…in语句是按照空白来分词的,包含空格的文件名会被拆成多个词。 如遇到 01 – Don’t Eat the Yellow Snow.mp3 时,i的值会依次取 01,-,Don’t,等等。 用双引号也不行,它会将ls *.mp3的全部结果当成一个词来处理。 1for i in "`ls *.mp3`"; do……

Continue reading

shell中变量的变量与eval命令

shell 中经常会用到变量的嵌套的情况。比如,单个或多个变量的值作为变量名,再对该变量名取$获取其内部的变量的情况,这种脚本写起来很难搞,还好有eval 命令方便我们处理这种情况。便于理解,先来一个示例: 1#!/bin/bash 2a='my' 3b='site' 4my_site='my site www.361way.com' 5echo a_b is "$a"_"$b" 6echo $("$a"_"$b") 7web="$a"_"$b" 8echo web is $web 9eval echo '$'"$a"_"$b" 10eval echo '$'{"$a"_"$b"} 比如上面这个示例,猜猜看它的运行结果是什……

Continue reading

bc显示小数点前的0

bc是强大而常用的计算工具。不过在除法运算时,如果得到的结果值小于1,得到的小数前面的0不存。本篇提供几个常用小数点前缺0的解决方法。 1[root@361way ~]# bc 2bc 1.06.95 3Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. 4This is free software with ABSOLUTELY NO WARRANTY. 5For details type `warranty'. 6scale=2; 1/3 7.33 打开bc进入交互模式,我们键入scale=2; 1/3 回车,看到结果0.33前的0没有--……

Continue reading

Shell特殊变量:$0, $#, $*, $@, $?, $$和命令行参数

特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 $# 传递给脚本或函数的参数个数。 $* 传递给脚本或函数的所有参数。 $@ 传递给脚本或函数的所有参数。被双引号(” “)包含时,与 $* 稍有不同,下面将会讲到。 $?……

Continue reading

Latest articles

Categories

Tags

ACL AD AES AI AWS Ansible Atlassian Azure BMC Blockchain Brocade CDH5 CL210 Cobbler Confd C语言 DDOS DISTINCT DNS EKS ELK GCP Ghost Git Glusterfs Go Godaddy Grafana HBA HCIE Hotspot HttpWatch IBM IIS IOS InfluxDB Ingress InnoDB JavaScript Jinja2 KVM Keepalived Mplayer MySQLdb Netlify OpenResty PM PostgreSQL QoS RH318 RH442 RHCA RHCE RHEV RSA SRE SecureCRT Statuscode SublimeText2 TC Telecom Tencentcloud VBA aira2 alpine android anpic apache apm apparmor appfog apr apt-get aria2 array atop audit awk awstats axel backdoor backup bamboo bash bat benchmark bigdata bin bind bitwise book bootstrap bsd c1000 cache capistrano catlog centos centos7 chatops chattr check_mk checkinstall cisco clearall clickhouse cloud-desktop cmdb cms collectd comm compress conver corosync cpu crontab crunchbang css curl date decode dell desktop devops df dhcp diff diskpart django docker dos2unix dpkg drupal etcd excel fail2ban fastcgi fdisk fiddler find firewalld flask flvtool ftp function fuser geek gin github gitlab glances golang google gooupadd graphviz gravatra grep grub2 hadoop haproxy hardware heartbeat helm hexdump hhvm history html http/html/web httplogs https huawei huaweicloud hugo icmp iconv ifconfig inotify iopp ipmitool iptables iredmail iscsi isito it-news java jdk jenkins jira join joomla k3s k8s kdump kernel kingate lamp last leetcode lib light-http linux linux高级篇 ln ls lsi lsof lvm lvs mac mail man mark markdown matplotlib maven memcached microservice mimikatz mkdocs mkpasswd mmonit mod_jk mongodb monit monitor mono moodle mosh mount mpm mrtg mtr my.cnf mysql mysqlbinlog mysqld_multi mysqldump mysqlhotcopy nagios nc nethogs nexus nfs nginx nmon nocatlog node.js nrpe ntfs ntop ntp obs ocr open-falcon openbox opencv openldap openssl openstack oracle oswatch paas pacemaker pam pandas parted pcp pcre pdf percona perl pexpect pgrep php php-fpm ping plsql develope postfix powershell prettify proc prometheus puppeteer pushd pwgen pxe pyecharts python python模块 radmin raid rdesktop read redhat redis redmine regex rh134 rhel7 rhel8 rm rman rootkit route rpm rpmforge rrdtool rsync rsyslog safe saltstack samba scapy screen sed selenium selinux seo seq session set shc sheepdog shell shopt sitemap skydns smokeping snffier snmp socket soft sort spider sql sqlserver squid ss ssh sshpass strace strings su sudo suse svn sysbench syslog-ng sysstat systemd t tar tcpcopy tcpdump tech telnet tengine test testlink threads time tmux tomcat touch tr tsar twisted ubuntu udev ulimit unix unixbench user-agent useradd varnish vbs vercel vi vim visudo vmstat vmware vnc voice vpn vscode vsftp vsftpd vue watchdog web webcam webistrano wget wiki windows wol wordpress workshop wsl x-windows xampp xcache xmllint xtrabackup yule yum zabbix zeromq zip zonetime zookeeper 下载工具 云主机 云原生 代理 加密 古意 吐槽 圈里圈外 娱乐 字符串函数 安全 平台架构 意林 推理 提权 故事汇 故障案例 数据结构 每日看点 民国史 生活 科学记录 站长管理工具 算法 管理 网站架构 翻墙 股票 行业 诗韵 负载均衡 远程管理 面试题

Links

Meta