包含标签 shell articles

shell字符串操作小结

在写shell脚本时,经常会涉及到字符串相关操作。有很多命令语句,如:awk,sed都可以做字符串各种操作。 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序的等待时间,因此速度会非常的快。 一、判断读取字符串值 表达式 含义 ${var} 变量var的值……

Continue reading

${string::N}和${string:N}字符提取

有文件file,内容为1234567898453613025(n个数字),编写程序实现每隔4个数字就换行。脚本编写如下: ${string::N}提取前N个字符,${string:N}提取N个之后的字符 。 1# cat ./test.sh 2#!/bin/bash 3test=1234567898453613025 4num_test=`echo ${#test}` 5num=$[num_test/4 + 1 ] 6for i in `seq $num` 7do 8 echo -ne "${test::4}" 9 test=`echo ${test:4}` 10 echo 11done 执行后的结果是: 1# ./test.sh 21234 35678……

Continue reading

shell贪婪匹配

有时候对一段文字只提取其中的一部分,可以借助shell的贪婪匹配实现,%是从右向左匹配,#则是从左向右匹配,如下实例: 1[root@www ~]# qq=www.qq.com 2[root@www ~]# echo ${qq#*.} //排除第一个 3qq.com 4[root@www ~]# echo ${qq##*.} //排除前两个 5com 6[root@www ~]# echo ${qq%.*} //排除后一个 7www.qq 8[root@www ~]# echo ${qq%%.*} //排除后两个 9www 10[root@www ~]# 上例中是以点为分割的,不是以“qq”做为分割 。下面结合实……

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

shell列出所有的运营商的ip地址范围

公司最近也有自建CDN的打算,无意在网上看到一则通过下apnic的数据并进行shell脚本区分的方法。感觉挺方便的,虽然在台机上测试效率有点低,不过服务器上效果应该还不错。可以自动区分电信网通教育网铁通移动_联通ip地址范围,用于做智能DNS解析应该不错。脚本如下: 1#!/bin/sh 2# download ip info from apnic……

Continue reading

select与shell脚本交互界面

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

Continue reading

shell数组的定义与应用

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

Continue reading

shell 生成随机数与随机字符串

一、生成随机数 1、使用系统的 $RANDOM 变量 1[root@361way ~]# echo $RANDOM 214436 2、增加整数实现范围 $RANDOM 的范围是 [0, 32767] ,如需要生成超过32767的随机数,可以用以下方法实现。 生成40000~50000的随机数 1#!/bin/bash 2function rand(){ 3 min=$1 4 max=$(($2-$min+1)) 5 num=$(($RANDOM+1000000000)) #增加一个10位的数再求余 6 echo $(($num%$max+$min)) 7} 8rnd=$(rand 40000 50000) 9echo $rnd 10exit 0 3、使用date +%s%N 1#!/bin/bash 2function rand(){ 3 min=$1 4 max=$(($2-$min+1)) 5 num=$(date +%s%N) 6 echo $(($num%$max+$min)) 7}……

Continue reading

linux shell下输出带颜色文字

文本终端的颜色可以使用“ANSI非常规字符序列”来生成。举例: 1echo -e "33[44;37;5m 361 33[0m way" 以上命令设置作用如下:背景色为蓝色,前景色为白色,字体闪烁,输出字符”361″,然后重新设置屏幕到缺省设置,输出字符 “way”。”e”是命令 echo 的一个可选项,它用于激活特殊字符的解析器。”33″引导非常规字符……

Continue reading

Latest articles

Categories

Tags

ACL AD AES AI Alpine Android Anpic Ansible Apache Apm Apparmor Appfog Apr Apt-Get Aria2 Array Atlassian Atop Audit Awk AWS Awstats Axel Azure Backdoor Backup Bamboo Bash Bat Benchmark Bigdata Bin Bind Bitwise Blockchain BMC Book Bootstrap Brocade Bsd C1000 Cache Capistrano Catlog CDH5 Centos Centos7 Chatops Chattr Check_mk Checkinstall Cisco CL210 Clickhouse Cloud Cloud-Desktop Cmdb Cms Cobbler Collectd Comm Compress Confd Conver Corosync Cpu Crontab Crunchbang Css Curl C语言 Date DDOS Decode Dell Desktop Devops Df Dhcp Diff Diskpart DISTINCT Django DNS Docker Dos2unix Dpkg Drupal Duckdb EKS ELK Etcd Excel Fail2ban Fastcgi Fdisk Fiddler Find Firewalld Flask Flvtool Ftp Function Fuser GCP Geek Ghost Gin Git Github Gitlab Glances Glusterfs Go Godaddy Golang Google Gooupadd Grafana Graphviz Gravatra Grep Grub2 Hadoop Haproxy Hardware HBA HCIE Heartbeat Helm Hexdump Hhvm History Hotspot Html Http/Html/Web Http/Html/Web Httplogs Https HttpWatch Huawei Huaweicloud Hugo IBM Icmp Iconv Ifconfig IIS InfluxDB Ingress InnoDB Inotify Iopp IOS Ipmitool Iptables Iredmail Iscsi Isito It-News Java JavaScript Jdk Jenkins Jinja2 Jira Join Joomla K3s K8s Kdump Keepalived Kernel Kingate KVM Lamp Last Leetcode Lib 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 Mplayer Mpm Mrtg Mtr My.cnf Mysql Mysqlbinlog Mysqld_multi MySQLdb Mysqldump Mysqlhotcopy Nagios Nc Nethogs Netlify Nexus Nfs Nginx Nmon Nocatlog Node.js Nrpe Ntfs Ntop Ntp Obs Ocr Open-Falcon Openbox Opencv Openldap OpenResty Openssl Openstack Oracle Oswatch Paas Pacemaker Pam Pandas Parted Pcp Pcre Pdf Percona Perl Pexpect Pgrep Php Php-Fpm Ping Plsql Develope PM Postfix PostgreSQL Powershell Prettify Proc Prometheus Puppeteer Pushd Pwgen Pxe Pyecharts Python Python模块 QoS Radmin Raid Rdesktop Read Redhat Redis Redmine Regex Rh134 RH318 RH442 RHCA RHCE Rhel7 Rhel8 RHEV Rm Rman Rootkit Route Rpm Rpmforge Rrdtool RSA Rsync Rsyslog Safe Saltstack Samba Scapy Screen SecureCRT Sed Selenium Selinux Seo Seq Session Set Shc Sheepdog Shell Shopt Sitemap Skydns Smokeping Snffier Snmp Socket Soft Sort Spider Sql Sqlserver Squid SRE Ss Ssh Sshpass Statuscode Strace Strings Su SublimeText2 Sudo Suse Svn Sysbench Syslog-Ng Sysstat Systemd T Tar TC Tcpcopy Tcpdump Tech Telecom Telnet Tencentcloud Tengine Test Testlink Threads Time Tmux Tomcat Touch Tr Tsar Twisted Ubuntu Udev Ulimit Unix Unixbench User-Agent Useradd Varnish VBA 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