shell脚本

shell转码脚本

穿精又带淫゛_ 提交于 2019-12-01 17:02:35
shell转码脚本 20191017 !/bin/bash #iconv -f GB2312 -t utf-8 "filename.sql" -o "newfilename.sql" #将GB2312文件转换为UTF-8文件 #1个参数: # filename:单个文件名称 # 要保证源文件确实是gb2312编码,否则转换之后为乱码!!! # 不能确定的就一个一个打开看看,一个一个进行转码 # 如何自动识别编码? filename=$1 nump=$# function main(){ #临时文件夹,保存原始文件 if [ ! -d ./temp_dir ] then mkdir ./temp_dir fi #单个文件,有一个参数 let flag=$nump if [[ ${flag} = 1 ]] then mv ${filename} ./temp_dir/${filename} iconv -f GB2312 -t utf-8 -c ./temp_dir/${filename} -o ${filename} echo "succeed!" exit 0 fi #多个文件,无参数 if [[ ${flag} = 0 ]] then cd $(dirname $0); pwd for fileitem in * do if [ -f ${fileitem} ] then

shell 多行注释

£可爱£侵袭症+ 提交于 2019-12-01 16:48:55
shell 多行注释 20191017 学习一下shell脚本中多行注释的方法 方法一 :<<! #被注释的内容 ! 方法二 :' #被注释的内容 ' 方法三 if false;then #被注释的内容 fi 方法四 :<<任意字符或者数字 #被煮熟的内容 任意字符或者数字 方法五 ((0)) && { #被注释的内容 } 参考 参考文章 来源: https://www.cnblogs.com/damahuhu/p/11694054.html

Shell 编程 免交互 expect

﹥>﹥吖頭↗ 提交于 2019-12-01 15:16:50
本篇主要写一些 shell 脚本免交互 expect 的使用。 概述 Expect 是建立在 tcl 基础上的一个工具, Expect 是用来进行自动化控制和测试的工具。主要解决 shell 脚本中不可交互的问题。 安装 使用此工具前需先安装 yum install -y expect 基本命令 send 向进程发送字符串,用于模拟用户的输入 该命令不能自动回车换行,一般要加 \r (回车) expect expect 的一个内部命令,判断上次输出结果里是否包含指定的字符串,如果有则立即返回,否则就等待超时时间后返回。 只能捕捉由 spawn 启动的进程的输出 spawn 启动进程,并跟踪后续交互信息 interact 执行完成后保持交互状态,把控制权交给控制台 timeout 指定超时时间,过期则继续执行后续指令 单位是:秒 timeout -1 永不超时 默认情况下, timeout 是 10 秒 exp_continue 允许 expect 继续向下执行指令 send_user 回显命令,相当于 echo $argv 参数数组 expect 脚本可以接受从 bash 传递的参数.可以使用 [lindex $argv n] 获得, n 从 0 开始,分别表示第一个,第二个,第三个...参数 expect 脚本 expect 脚本必须以 interact 或 expect eof

Shell 传递参数

柔情痞子 提交于 2019-12-01 13:37:37
Shell 传递参数   我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为: $n 。 n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推… #!/bin/bash echo "执行的文件是:$0" echo "第一个参数: $1" echo "第二个参数:$2" echo "第三个参数:$3" echo "传递的参数个数: $#" echo "以一个单字符串显示所有向脚本传递的参数: $*" echo "脚本运行的当前进程ID号: $$" echo "后台运行的最后一个进程的ID号: $!" echo "是使用时加引号,并在引号中返回每个参数:$@" echo "显示Shell使用的当前选项,与set命令功能相同。 $-" echo "显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误: $?" #将param.sh脚本变为可执行 chmod +x ./param.sh #执行脚本 ./param.sh A B C D E F G 猪八戒 孙悟空 1 2 3 4 5 6 http://www.nihao.com#输出内容   执行的文件是:./param.sh   第一个参数: A   第二个参数:B   第三个参数:C   传递的参数个数: 16   以一个单字符串显示所有向脚本传递的参数: A B C D E

shell脚本介绍, shell脚本结构和执行,date命令用法, shell脚本中的变量

此生再无相见时 提交于 2019-12-01 13:16:31
shell脚本介绍: Shell脚本结构和执行: 开头(首行)需要加: #!/bin/bash 这里是指文件使用的是bash语法,通过/bin/bash解释器来执行的。 以#开头的行作为解释说明: 脚本的名字以.sh结尾,用于区分这是一个shell脚本 执行.sh脚本方法有两种: 1先给.sh脚本添加x权限: chmod +x 1.sh .sh脚本的绝对路径回车: /root/1.sh 2bash(bash=sh)执行.sh脚本: bash 1.sh 查看脚本执行过程: sh -x 1.sh 检测shell脚本的语法错误: sh -n 1.sh date命令用法: 1.命令格式: date [参数]... [+格式] 2.命令功能: date 可以用来显示或设定系统的日期与时间。 3.命令参数: 必要参数: %H 小时(以00-23来表示)。 %M 分钟(以00-59来表示)。 %s 总秒数。起算时间为1970-01-01 00:00:00 UTC。 %S 秒(以本地的惯用法来表示)。 %d 日期(以01-31来表示)。 %D 日期(含年月日)。 %m 月份(以01-12来表示)。 %w 该周的天数,0代表周日,1代表周一,异词类推。 %Y 年份(以四位数来表示)。 选择参数: -d<字符串>  显示字符串所指的日期与时间。字符串前后必须加上双引号。 -s<字符串>

Shell 脚本重启项目

纵饮孤独 提交于 2019-12-01 12:43:53
每次发打包好项目后都需要手动重启项目,写个 Shell 脚本一键重启项目 Shell 脚本 #!/bin/bash while getopts "n:p:" arg do case $arg in n) echo "NAME's arg:$OPTARG" NAME=$OPTARG ;; p) echo "PORT's arg:$OPTARG" PORT=$OPTARG ;; esac done PROCESS=echo | lsof -i TCP:$PORT | grep LISTEN | awk '{print $2}' if [ $PROCESS ]; then kill -9 $PROCESS echo kill $NAME:$PROCESS, restart fi cd jenkins cp jar/.tmp/$NAME-0.0.1-SNAPSHOT.jar jar/ nohup java -jar -Xms128m -Xmx256m jar/$NAME-0.0.1-SNAPSHOT.jar --eureka.url="127.0.0.1:9100/eureka/" --profile="dev" >logs/$NAME.log 2>&1 & echo $NAME starting Shell 说明 getopts :实现 Shell 脚本多参数 nohup :后台启动项目

Tomcat重启Shell脚本

社会主义新天地 提交于 2019-12-01 12:21:36
vim restart_tomcat.sh #!/bin/bash # Filename: restart_tomcat.sh # Description: Restart tomcat # Date: 2017-02-06 # Author: songwj # Version: v1.0 export LANG=zh_CN.UTF-8 export JAVA_HOME=/usr/java/jdk1.7.0_79 export JRE_HOME=$JAVA_HOME/jre export CATALINA_BASE=/usr/local/apache-tomcat-7.0.79 export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$CATALINA_BASE/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH echo "[$(date +'%F %T')] >>> Tomcat begin to restart." $CATALINA_BASE/bin/shutdown.sh # Kill all remaining processes pidList=$(ps aux | grep $CATALINA_BASE | grep -v grep | awk '

【shell脚本】nginx启动脚本

╄→尐↘猪︶ㄣ 提交于 2019-12-01 11:38:29
[root@localhost init.d]# cat nginx #!/bin/bash #nx Startup script for the Nginx HTTP Server # it is v.0.0.2 version. # chkconfig: - 85 15 # description: Nginx is a high-performance web and proxy server. # It has a lot of features, but it's not for everyone. # processname: nginx # pidfile: /var/run/nginx/nginx.pid # config: /usr/local/nginx/conf/nginx.conf nginxd=/usr/bin/nginx nginx_config=/etc/nginx/nginx.conf #nginx_pid=/var/run/nginx.pid nginx_pid=/var/run/nginx/nginx.pid RETVAL=0 prog="nginx" # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc

Shell 编程 排序工具 sort 和 uniq

只谈情不闲聊 提交于 2019-12-01 10:39:56
本篇主要写一些 shell 脚本排序工具的使用。 sort 概述 sort 是一个以行为单位对文件内容进行排序的工具,也可以根据不同的数据类型来排序。 用法 sort [选项] 参数 -f :忽略大小写 -b :忽略每行前面的空格 -M :按照月份进行排序 -n :按照数字进行排序 -r :反向排序 -u :等同于 uniq ,表示相同的数据仅显示一行 -t :指定分隔符,默认使用 Tab 键分隔 -o <输出文件> :将排序后的结果转存至指定文件 -k :指定排序区域 示例 将 /etc/passwd 文件中的账号进行排序 [root@localhost ~]# sort /etc/passwd adm:x:3:4:adm:/var/adm:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin chrony:x:998:996::/var/lib/chrony:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin

Shell 编程 编辑工具 awk

China☆狼群 提交于 2019-12-01 10:36:14
本篇主要写一些 shell 脚本编辑工具 awk 的使用。 概述 awk 是一个功能强大的编辑工具,逐行读取输入文本,并根据指定的匹配模式进行查找,对符合条件的内容进行格式化输出或者过滤处理。 awk 倾向于将一行分成多个字段然后再进行处理,且默认情况下字段的分隔符为 空格 或者 tab 键。 awk 执行结果可以通过 print 的功能将字段数据打印显示。 可以使用逻辑操作符 && ,表示 与 , || 表示 或 , ! 表示 非 ;还可以进行简单的数学运算,如 + 、 - 、 * 、 / 、 % 、 ^ 分别表示 加 、 减 、 乘 、 除 、 取余 和 乘方 。 命令常见用法 命令有两种格式: awk [选项] '模式或条件{编辑指令}' 文件 1 文件 2... awk -f 脚本文件 文件 1 文件 2... 常见的内置变量 FS :指定每行文本的字段分隔符,默认为空格或制表位。 NF :当前处理的行的字段个数。 NR :当前处理的行的行号(序数)。 $0 :当前处理的行的整行内容。 $n :当前处理行的第 n 个字段(第 n 列)。 RS :数据记录分隔,默认为 \n ,即每行为一条记录。 FILENAME :被处理的文件名。 示例 按行输出文本 输出所有内容 [root@localhost ~]# awk '{print}' /etc/passwd root:x:0