linux脚本

shell脚本报错:-bash:/bin/sh^M: bad interpreter:

只愿长相守 提交于 2019-11-28 18:17:02
今天写了一个shell脚本,然后在执行的时候报错,如下截图: 主要原因是shell文件是我在windows下编辑然后上传到linux系统里执行的。shell文件的格式为dos格式。而linux只能执行格式为unix格式的脚本。 我们可以通过vi编辑器来查看文件的format格式。步骤如下: 1.首先用vim命令打开文件 2.在vi命令模式中使用 :set ff 命令 可以看到改文件的格式为dos: 3.修改文件format为unix,使用vi修改文件format,命令:set ff=unix 执行完后再通过set ff命令查看文件格式,结果如下: 来源: https://blog.51cto.com/1345992/2432985

第一个shell脚本(一)

陌路散爱 提交于 2019-11-28 18:13:17
第一个脚本 [root@ipha-dev71-1 exercise_shell]# ll total 4 -rw-r--r-- 1 root root 32 Aug 27 15:24 test.sh [root@ipha-dev71-1 exercise_shell]# cat test.sh #!/bin/bash # 指定解释器信息, #!/bin/sh 也可以 echo "hello world!" [root@ipha-dev71-1 exercise_shell]# chmod 777 test.sh # 修改文件权限,使其具有可执行权限 [root@ipha-dev71-1 exercise_shell]# ll total 4 -rwxrwxrwx 1 root root 32 Aug 27 15:24 test.sh [root@ipha-dev71-1 exercise_shell]# ./test.sh # 运行shell脚本的第一种方式:作为可执行程序。注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里

CentOS6 Shell脚本/bin/bash^M: bad interpreter错误解决方法

梦想与她 提交于 2019-11-28 17:57:07
找半天找不到对应解决办法,我也是心累 前提: 将两个分区字段的表数据转移到一个分区字段的表中 遇到很奇怪的一个问题。新表有四个分区被我删掉了,我将旧表有俩分区字段的多个分区的表数据放到新表,结果只出现我之前删掉的4个分区,按理应该是大于4个分区的。 使用 https://www.cnblogs.com/zlzhoulei/p/5552366.html https://www.cnblogs.com/kimbo/p/7102571.html https://blog.csdn.net/lz6363/article/details/86709038 https://blog.csdn.net/juanjuan1314/article/details/78203011 的方法直接在插入的时候动态制定分区应该是有问题。 alter table tb_partition drop partition (etl_dt>= '20181102',etl_dt<= '20181104') hive改表结构的两个坑 https://blog.csdn.net/windyqcf/article/details/51488139 https://blog.csdn.net/qq_39532946/article/details/77921039 错误总结: 时间写错 无数据分区复制过去没有该分区

Shell:

做~自己de王妃 提交于 2019-11-28 16:34:24
4个Shell小技巧,帮你提高机器学习生产效率 晓查 发自 凹非寺 量子位 报道 在机器学习的实践过程中,用好Shell能帮你很多节省时间。 最近,有位来自ETHZ的学生分享了一些Shell小技巧。对程序员来说,这些技巧更重要的是让你的思维从琐碎小事中解脱出来,大大提高了工作效率。 下面就是他分享的4个tips。由于本文中涉及到的shell脚本过多,你可以去文末地址中查看所有脚本的源代码。 抓取远程文件 当你在远程服务器上监视程序运行时,如果想把一个远程文件抓取到本地查看,通常你会怎么做? 记下文件路径,打开终端,用rsync之类的工具同步到本地,再到文件浏览器中查看。 实际上不必这么麻烦。只需要事先写好几个shell脚本,就可以避免重复的机械劳动。 在这里强烈推荐 iTerm 2 ,它比Mac自带的终端要强大得多,可以指定某个触发关键词执行某个相应的命令。 先在远程服务器上设置一个脚本 t 。当我们输入r awesome_video.mp4时,它会搜索awesome_video.mp4文件所在路径,并连同主机名以字符串rtransfer <host> <path>的形式打印出来。 rtransfer作为iTerm2的触发关键词,解析出主机和路径,然后调用另一个本地脚本 t2 。脚本t2将这个视频文件传输到临时目录,然后在该目录中打开Finder。 使用iTerm

Linux Shell脚本进行SNMP服务自动安装

╄→尐↘猪︶ㄣ 提交于 2019-11-28 16:27:37
Linux下实现SNMP服务的一键安装配置,具体实现过程如下所示(CentOS 7操作系统)。 (1)角色判断 判断当前登录的用时是否为root用户,防止安装软件时不能进行安装。如果不是root用户将退出脚本执行,否则将继续进行脚本执行。 #!/bin/bash #进行一键安装SNMP创建Shell脚本 # #判断当前用户是否为root if [ "$(id -u)" != "0" ] then echo "This Shell must be run as root" 1>&2 exit 1 fi (2)检查软件是否安装 检查SNMP服务需要的安装包是否已经安装,如果没有安装通过Shell脚本直接进行安装。 #检查系统是否存在yum命令 YUM_CMD=`whereis yum | awk '{print $2}'` if [ "$YUM_CMD" != "" ] then #检测是否安装gcc cmd=`rpm -q gcc | grep -v "not installed"` if [ "${cmd}x" = "x" ] then echo "install gcc start >>>" yum install -y gcc 1>/dev/null 2>&1 else echo "not need install gcc" fi cmd1=`rpm -q net-snmp |

ubantu 运行.sh 脚本的问题

邮差的信 提交于 2019-11-28 15:15:32
一些人喜欢用vim来写linux shell script, 但是, 有的人喜欢在Windows下用一些方便的编辑器(比如鼎鼎大名的Notepad++)写好, 然后拷贝文件到linux下, 结果呢, 在执行脚本a.sh的时候, 会出现如下问题: [plain] view plain copy [taoge@localhost learn_shell]$ ./a.sh bash: ./a.sh: /bin/bash^M: bad interpreter: No such file or directory [taoge@localhost learn_shell]$ 什么原因呢, 我们有理由怀疑是文件格式问题? 我们用vim a.sh进入a.sh这个文件, 然后在底部模式下, 执行:set ff查看一下, 结果发现fileformat=dos, 看看, 果然是文件格式问题, 那怎么解决呢? 方法一:vim a.sh进入a.sh后, 在底部模式下, 执行:set fileformat=unix后执行:x或者:wq保存修改。 然后就可以执行./a.sh运行脚本了。(我亲自试过, 是ok的) 方法二:直接执行sed -i "s/\r//" a.sh来转化, 然后就可以执行./a.sh运行脚本了。(我亲自试过, 是ok的) 方法三:直接执行dos2unix a.sh来转化, 然后就可以执行.

shell脚本应用(一)

a 夏天 提交于 2019-11-28 15:06:13
Shell 脚本的概念 将平时使用的各种Linux命令按顺序保存(堆叠)到一个文本文件中,添加上执行权限,就是一个Shell脚本。 ● 将要执行的命令按先后顺序保存到一个文本文件 ● 给该文件可执行权限,便可运行 ● 可结合各种Shell控制语句以完成更复杂的操作 Shell脚本应用场景 ● 重复性操作 ● 批量事务处理 ● 自动化运维 ● 服务运行状态监控 ● 定时任务执行 ● 减轻管理员负担 ● 规避费时操作 编写Shell脚本的格式: 1、#!/bin/bash 表示脚本通过以/bin/bash程序来编写 2、# 表示注释信息,例如:对编写的脚本作用进行解释,每写一段脚本之前都应该用“#”来注释以下命令执行的结果 3、定义脚本中的变量 4、定义脚本中的函数 5、脚本执行语句(判断、循环、选择等语句) 6、利用 echo 定义输出一些让人更容易看懂得信息(可以是中文也可以是英文) 执行脚本的三种方法 : l 通过绝对路径执行:/root/first.sh或进入到脚本文件所在目录 ./first.sh (需要给脚本文件添加上执行权限) l 进入到脚本文件所在目录执行 sh first.sh bash first.sh(文件可以没有执行权限) l 进入到脚本文件所在目录执行 source first.sh 或 . first.sh (文件可以没有执行权限) Shell的概念

同步linux系统时间脚本

不羁岁月 提交于 2019-11-28 14:42:13
分享一个同步Linux系统时间d的脚本,可以自动设置系统时区为东八区,并同步系统时间,当ntpdate同步失败时会尝试用rdate同步,时间服务器us.ntp.org.cn和time.nist.gov可以替换成自己常用的 #!/bin/bash [ "`rpm -qa | egrep ^rdate`" ] || yum -y install rdate > /dev/null 2>&1 tz=`date -R | awk '{print $NF}'` if [ $tz != "+0800" ] then \cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime echo ZONE=\"Asia/Shanghai\" > /etc/sysconfig/clock fi /usr/sbin/ntpdate us.ntp.org.cn if [ $? != 0 ] then /usr/bin/rdate -s time.nist.gov fi /sbin/hwclock -w 结合cron做成任务计划就可以周期性的自动同步系统时间了 来源: 51CTO 作者: opsfans 链接: https://blog.51cto.com/13719882/2129104

linux 99乘法表脚本.md(含脚本注释,查看更直观)

人走茶凉 提交于 2019-11-28 14:13:17
linux 99乘法表脚本.md(含脚本注释,查看更直观) 最终效果: 题目 :编写脚本,实现打印 99乘法表 路径 :(仅作者) PDF:D:\Download_SD-Date and Bak(D盘 下载)\学习资料\pdf文件\基础知识\15SHELL脚本编程进阶.pdf ​ 15SHELL脚本编程进阶.pdf ​ 5、编写脚本,实现打印国际象棋棋盘 视频 :(仅作者)17、18天 ​ 逻辑:(详见代码注释) 1、分别循环 行数 列数 [for done] 。 2、简化 嵌套(C语言 小括号嵌套,递增) 。 3、递增循环 打印 -- 行 乘 列 等于 (行列之积) 总结:(大纲)-------第一级(行)循环 >>> 第二级的(列)循环 >>> 每次循环都打印 “ 行 乘 列 等于 (行列之积) ” 查看脚本:(命令) [root@c7_uscwifi_cn ~]# cat 9x9.sh cat 9x9.sh 脚本内容: #!/bin/bash # #******************************************************************** #Author: quansen #QQ: 1955346284 #Date: 2019-08-25 #FileName: 9x9.sh #URL: http://www.uscwifi.cn

第六周作业.md

做~自己de王妃 提交于 2019-11-28 14:13:16
mgjy第六周作业.md 内容索引 : ​ 1.国际象棋 ​ 2.99乘法表 linux国际象棋 棋盘脚本.md(含脚本注释,查看更直观) 最终效果: 题目 :编写脚本,实现打印国际象棋棋盘 路径 :(仅作者) PDF:D:\Download_SD-Date and Bak(D盘 下载)\学习资料\pdf文件\基础知识\15SHELL脚本编程进阶.pdf ​ 15SHELL脚本编程进阶.pdf ​ 5、编写脚本,实现打印国际象棋棋盘 视频 :(仅作者)17、18天 ​ 逻辑:(详见代码注释) 1、循环[for done] 深浅 格子。 2、简化 嵌套 第二层 循环[for done]。 3、判断命令[if else] 的引用,实现 首行 与第二 行 格子的交替 总结:(大纲)-------第一级(行)循环 >>> 第二级的(列)循环 >>> 二级循环包含(if else)两个二级 判断 循环 查看脚本:(命令) [root@c7_uscwifi_cn ~]# cat chess.sh cat chess.sh 脚本内容: #!/bin/bash # #******************************************************************** #Author: quansen #QQ: 1955346284 #Date: 2019-08