linux脚本

Shell(1)---变量

偶尔善良 提交于 2019-12-24 04:35:23
Shell(1)---变量 初衷 :学习shell的目的很简单,自己经常在linux服务器上做各种操作,而且基本上是一些相同的命令操作,所以就想通过shell脚本来启动就行,能够节省一定的开发时间,提高工作效率。 一、shell变量 1、定义变量 Shell 支持以下三种定义变量的方式 xub$ name=value xub$ name='value' xub$ name="value" # name 是变量名,value 是赋给变量的值。 区别 如果 value 不包含任何空白符(例如空格、Tab 缩进等),那么可以不使用引号; 如果 value 包含了空白符,那么就必须使用引号包围起来。 使用单引号和使用双引号也是有区别的 下面讲。 注意 赋值号 = 的两边不能有空格。 xub$ name="小小" #赋值 xub$ echo $name #输出命令 xub$ 小小 #输出 2、使用变量 使用一个定义过的变量,只要在变量名前面加美元符号 $ 即可,如: xub$ home="千岛湖" xub$ echo $home 千岛湖 xub$ echo ${home} 千岛湖 区别 变量名外面的花括号 { } 是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况: xub$ name="xiaoxaio" xub$ echo "my name is

Linux Shell——流程控制

南楼画角 提交于 2019-12-24 04:33:27
一. 创建交互式脚本 使用 echo命令的选项 关于各种命令的使用,可以使用 man 命令 来查看命令的详细用法介绍。例如,我想看下 echo 的用法和各种选项。可以执行 man echo 。执行结果如下: 如果单独执行 echo 命令,就会打印出一个空白行。 默认情况下,echo 都会换行,如果不想换行的话,可以使用下面两种方式的一种。 echo -n "Which directory do you want to use? " echo -e "Which directory do you want to use? \c" 使用 read 命令 如果我们需要读入用户输入的参数时,可以使用 read 命令,当然还可以从文件系统等读入信息。 我们建立一个新的脚本文件 hello3.sh。 #!/bin/bash echo -n "Hello I $(basename $0) may I ask your name: " read echo "Hello $REPLY" exit 0 执行此脚本时,首先提示需要输入,然后输入的内容, REPLY 当没有给 read 提供参数时设置,最后打印出来。 执行结果为: 优化 read 提示的脚本 在前面的例子中,我们使用了 echo -n 的方式来阻止信息换行,其实 read 命令也带了一个选项来实现相同的功能: read -p "Enter

shell面试题总结

痞子三分冷 提交于 2019-12-24 04:33:03
1) 如何向脚本传递参数 ? ./script argument 例子: 显示文件名称脚本 ./show.sh file1.txt cat show.sh #!/bin/bash echo $1 (LCTT 译注:谢谢某匿名访客的提醒,原题有误,修改之。) 2) 如何在脚本中使用参数 ? 第一个参数 : $1,第二个参数 : $2 例子 : 脚本会复制文件(arg1) 到目标地址(arg2) ./copy.sh file1.txt /tmp/ cat copy.sh #!/bin/bash cp $1 $2 3) 如何计算传递进来的参数 ? $# 4) 如何在脚本中获取脚本名称 ? $0 5) 如何检查之前的命令是否运行成功 ? $? 6) 如何获取文件的最后一行 ? tail-1 7) 如何获取文件的第一行 ? head-1 8) 如何获取一个文件每一行的第三个元素 ? awk'{print $3}' 9) 假如文件中每行第一个元素是 FIND,如何获取第二个元素 awk'{ if ($1 == "FIND") print $2}' 10) 如何调试 bash 脚本 将 -xv 参数加到 #!/bin/bash 后 例子: #!/bin/bash –xv 11) 举例如何写一个函数 ? function example { echo "Hello world!" } 12)

linux 下 .sh 文件语法

有些话、适合烂在心里 提交于 2019-12-24 04:31:55
转自:http://blog.sina.com.cn/s/blog_54f82cc201010hfz.html 介绍: 1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。 当编写脚本完成时,如果要执行该脚本,还必须使其可执行。 要使编写脚本可执行: 编译 chmod +x filename 这样才能用./filename 来运行 2 注释 在进行shell编程时, 以#开头的句子表示注释,直到这一行的结束 。我们真诚地建议您在程序中使用注释。 如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚本的作用及工作原理。 3 变量 在其他编程语言中您必须使用变量。在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。要赋值给一个变量,您可以这样写: #!/bin/sh #对变量赋值: a=”hello world” # 现在打印变量a的内容: echo “A is:” echo $a 有时候变量名很容易与其他文字混淆,比如: num=2 echo “this is the $numnd” 这并不会打印出”this is the 2nd”,而仅仅打印”this is the “

sh_脚本语法

℡╲_俬逩灬. 提交于 2019-12-24 04:31:38
介绍: 1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。 当编写脚本完成时,如果要执行该脚本,还必须使其可执行。 要使编写脚本可执行: 编译 chmod +x filename 这样才能用./filename 来运行 2 注释 在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。我们真诚地建议您在程序中使用注释。如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚本的作用及工作原理。 3 变量 在其他编程语言中您必须使用变量。在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。要赋值给一个变量,您可以这样写: #!/bin/sh #对变量赋值: a=”hello world” # 现在打印变量a的内容: echo “A is:” echo $a 有时候变量名很容易与其他文字混淆,比如: num=2 echo “this is the $numnd” 这并不会打印出”this is the 2nd”,而仅仅打印”this is the “,因为shell会去搜索变量numnd的值,但是这个变量时没有值的。可以使用花括号来告诉shell我们要打印的是num变量: num=2 echo

shell

馋奶兔 提交于 2019-12-23 19:31:41
简介 shell 是一个命令解释器 作为操作系统和应用程序之间的解释翻译命令的工具 shell有很多种 window 上的shell 是cmd.exe linux上有 sh /csh /ksh /bash 查看 查看当前系统的shell类型 echo $SHELL 查看当前系统环境支持的shell cat /etc/shells 使用 手工方式:逐行输入命令按回车执行 脚本方式:把命令写到一个脚本文件中 然后执行脚本 达到效果 #! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。 #!/bin/bash echo 'hello world' #单行注释 :<<! 这里是多行注释 !可以换成其他字符 ! 执行方式 第一种(推荐使用) /bin/bash /home/user/xxx.sh bash路径 脚本绝对路径 第二种 ./xx.sh 当前路径下执行 第三种 . xx.sh 前面直接 加. 书写规范 1.脚本命名要有一样 后缀是.sh (虽然可以不用后缀) 2.文件首行必须是指定脚本解释器 3.解释器后面必须要有脚本的基本信息 注释中不用中文 因为切换系统后可能会导致乱码 4.内容执行顺序 从上到下 依次执行 5.成对内容一次性写出 防止遗漏 如:() {} [] '' "" 变量 运行shell时,会同时存在三种变量: 1) 局部变量

centos6 设置 tomcat8 自启动脚本

喜你入骨 提交于 2019-12-23 17:34:55
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> centos6.5 版本 cd /etc/init.d/ , 新建 tomcat8 文件 #!/bin/bash # # tomcat startup script for the Tomcat server # # # chkconfig: 345 80 20 # description: start the tomcat deamon # # Source function library ./etc/rc.d/init.d/functions prog=tomcat8 JAVA_HOME=/usr/jdk/jdk1.8.0_211#你的jdk安装目录 export JAVA_HOME CATALANA_HOME=/usr/tomcat/apache-tomcat-8.5.40/#你的tomcat安装目录 export CATALINA_HOME case "$1" in start) echo "Starting Tomcat..." $CATALANA_HOME/bin/startup.sh ;; stop) echo "Stopping Tomcat..." $CATALANA_HOME/bin/shutdown.sh ;; restart) echo "Stopping Tomcat..."

Linux后台执行脚本文件,nohup

风格不统一 提交于 2019-12-23 16:00:18
看运维人员执行nohup命令后,把程序放在后台执行,很高大上,就研究了一下,这个命令. nohup命令及其输出文件 nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( n ohang up)。 该命令的一般形式为:nohup command &   使用nohup命令提交作业   如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:    nohup command > myout.file 2>&1 &   在上面的例子中,输出被重定向到myout.file文件中。   使用 jobs 查看任务。 例子: nohup php activity_insert_user.php 61 26_02.txt > 26_02.log 2>&1 & 注意事项: 2>&1 是一个整体,中间没有空格,表示把标准输出和错误输出都传到指定文件中. 下面是详解: ls xxx 1>out.txt 2>&1 nohup /mnt/Nand3/H2000G >/ dev / null 2>&1 & 对 于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT

Linux shell脚本基础 条件测试 for循环(Engineer01----DAY8)

妖精的绣舞 提交于 2019-12-23 06:50:08
什么脚本:一个可以执行文件,运行后可以实现某种功能 创建用户zhangsan useradd zhangsan 案例:书写hello.sh脚本 [root@server0 ~]# vim /root/hello.sh echo hello world [root@server0 ~]# /root/hello.sh -bash: /root/hello.sh: 权限不够 [root@server0 ~]# chmod +x /root/hello.sh [root@server0 ~]# ls -l /root/hello.sh [root@server0 ~]# /root/hello.sh hello world ####################################################### 规范Shell脚本的一般组成 • #! 环境声明,以下代码由那个程序进行翻译 • # 注释文本 • 可执行代码 1)输出当前红帽系统的版本信息 2)输出当前使用的内核版本 3)输出当前系统的主机名 [root@server0 ~]# vim /root/hello.sh #!/bin/bash echo hello world cat /etc/redhat-release uname -r hostname ifconfig | head -2 [root

linux定时执行脚本

独自空忆成欢 提交于 2019-12-23 05:25:12
linux定时执行脚本 阅读目录 1. cron服务【Ubuntu环境】 2. crontab用法 3. 编辑crontab文件 4. 流程举例 5. 几个例子 Linux中,周期执行的任务一般由cron这个 守护进程 来处理。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。cron的配置文件称为“crontab”,是“cron table”的简写。 回到顶部 1. cron服务【Ubuntu环境】 查看cron状态 1 sudo service cron status  开启cron 1 sudo /etc/init.d/cron start 关闭cron 1 sudo /etc/init.d/cron stop 重启cron 1 sudo /etc/init.d/cron restart    回到顶部 2. crontab用法 crontab –e : 修改 crontab 文件,如果文件不存在会自动创建。 crontab –l : 显示 crontab 文件。 crontab -r : 删除 crontab 文件。 crontab -ir : 删除 crontab 文件前提醒用户。 在crontab文件中写入需要执行的命令和时间,该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。每个域之间使用空格或者制表符分隔