shell脚本实例

shell脚本学习- 传递参数

若如初见. 提交于 2019-12-25 03:26:18
跟着 RUNOOB 网站的教程学习的笔记 我们可以在执行shell脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n代表一个数字,1为执行脚本的第一参数,2为执行脚本的第二个参数,以此类推。。。 实例: 以下实例我们向脚本传递三个参数,并分别输出,其中$0为执行文件名: #!/bin/bash # author:菜鸟教程 # url:www.runoob.com echo "Shell传递参数实例!"; echo "执行文件名: $0"; echo "第一个参数为:$1"; echo "第二个参数为:$2"; echo "第三个参数为:$3"; 另外,还有几个特殊字符用来处理参数: $#    传递到脚本的参数个数 $*   以一个单字符串显示所有向脚本传递的参数 $$   脚本运行的当前进程ID号 $!   后台运行的最后一个进程ID号 $@  与$*相同,但是使用时加引号,并在引导中返回每个参数 $-   显示Shell使用的当前选项,与set命令相同 $?   显示最后命令的退出状态,0表示没有错误,其他任何值表明有错误 来源: https://www.cnblogs.com/hanweiblog/p/9447237.html

Shell基本命令

岁酱吖の 提交于 2019-12-24 09:25:49
Linux命令行的组成结构 Linux系统命令操作语法格式 命令 空格 参数 空格 (文件或路径) 需要处理的内容 rm -rf /tmp/* ls -la /home 1.一般情况下,【参数】是可选的,一些情况下【文件或路径】也是可选的 2.参数 > 同一个命令,跟上不同的参数执行不同的功能 执行linux命令, 添加参数的目的是让命令更加贴切实际工作的需要 linux命令, 参数之间,普遍应该用一个或多个空格分隔! 创建一个目录 /oldboy windows下: 鼠标右击 > 新建文件夹 Linux下: 复制代码 make directory > mk dir > mkdir ------------------------------- mkdir /oldboy ------------------------------- cd / mkdir oldboy #递归创建a/b c/d mkdir -p a/b c/d #递归创建test/a,b,c,d四个目录 mkdir -p test/{a,b,c,d} #递归创建文件夹a/b/c/d/e mkdir -p a/b/c/d/e 查看目录 /oldboy #显示/oldboy下的内容 ls /oldboy 改变当前的目录/位置 cd /home cd ~ cd 打印当前工作目录 #打印当前工作目录 pwd

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-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) 局部变量

Nodejs进阶:如何玩转子进程(child_process)

守給你的承諾、 提交于 2019-12-23 17:39:26
本文摘录自个人总结《Nodejs学习笔记》,更多章节及更新,请访问 github主页地址 。欢迎加群交流,群号 197339705 。 模块概览 在node中,child_process这个模块非常重要。掌握了它,等于在node的世界开启了一扇新的大门。熟悉shell脚本的同学,可以用它来完成很多有意思的事情,比如文件压缩、增量部署等,感兴趣的同学,看文本文后可以尝试下。 举个简单的例子: const spawn = require('child_process').spawn; const ls = spawn('ls', ['-lh', '/usr']); ls.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); ls.stderr.on('data', (data) => { console.log(`stderr: ${data}`); }); ls.on('close', (code) => { console.log(`child process exited with code ${code}`); }); 几种创建子进程的方式 注意事项: 下面列出来的都是异步创建子进程的方式,每一种方式都有对应的同步版本。 .exec() 、 .execFile() 、 .fork() 底层都是通过

shell脚本实例-批量检查多个网站地址是否正常

ぃ、小莉子 提交于 2019-12-23 00:49:10
#!/usr/bin/bash [ -f /etc/init.d/functions ] && . /etc/init.d/functions array=( http://www.wosoquan.com http://www.taobao.com http://www.baidu.com http://192.168.1.110 http://192.168.1.18 ) curl_ip(){ wget -T 5 -t 2 --spider $1 &>/dev/null #-T 设置超时时间 -t 设置链接的次数 --spider 进行参数检查 return $? } main(){ for n in ${array[*]} do curl_ip $n if [ $? -eq 0 ];then action "curl $n" /bin/true else action "curl $n" /bin/false fi done } main 作者简介: 陈志珂(头条号: 强扭的瓜不好吃 )目前就职于中国最大的安卓应用软件公司,任高级工程师 , 现在公司任php开发工程师,python开发工程师,高级运维工程师,公众号“铅笔学园”运维内容合作作者之一。 铅笔学园 :IT资源分享|知识分享,做初级程序员的指明灯 来源: https://www.cnblogs.com

Shell脚本一键部署MongoDB

风流意气都作罢 提交于 2019-12-22 22:40:03
Shell脚本一键部署MongoDB 基本实施思路: 安装MongoDB→创建多实例(创建数量可根据需求自定义)→开启所有实例并展示端口 #!/bin/bash #自动安装MongoDB # #检查MongoDB是否已安装 local="/etc/yum.repos.d/MongoDB.repo" rpm -q mongodb-org &> /dev/null if [ $? -ne 0 ];then #配置本地YUM源 ls /etc/yum.repos.d/ | grep Mongo &> /dev/null if [ $? -ne 0 ];then touch $local echo "[mongodb-org]" >> $local echo "name=mongodb" >> $local echo "baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/3.6/x86_64/" >> $local echo "gpgcheck=1" >> $local echo "enabled=1" >> $local echo "gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc" >> $local yum list yum

Shell脚本入门-6

廉价感情. 提交于 2019-12-20 11:26:57
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> (一)Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr, expr 最常用 。 expr 是一款表达式计算工具,使用它能完成表达式的求值操作 。 例如,两个数相加( 注意使用的是 反引号 ` 而不是单引号 ' ): #!/bin/bash val=`expr 2 + 2` (注意: 2和'+'号 之间要有空格,不然结果为 2+2, 而不是4) echo "两数之和为 : $val" 执行脚本,输出结果如下所示: 两数之和为 : 4 两点注意: 表达式和运算符之间要有空格 ,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号 ,在 Esc 键下边。 (二)算术运算符 下表列出了常用的算术运算符,假定变量 a 为 10,变量 b 为 20: 运算符 说明 举例 + 加法 `expr $a + $b` 结果为 30。 - 减法 `expr $a - $b` 结果为 -10。 * 乘法 `expr $a \ * $b` 结果为 200。 / 除法 `expr $b /

shell编程

旧街凉风 提交于 2019-12-20 10:10:59
Shell 1. 新建一个脚本 新建一个 xxx.sh 文件 #!/bin/bash 脚本标识 1. 变量 1.1定义变量 myName=”小白” 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则: 首个字符必须为字母( a-z,A-Z)。 中间不能有空格,可以使用下划线( _)。 不能使用标点符号。 使用变量: $ 变量名 为了区分,我们可以使用 ${ 变量名 } readonly 定义一个只读的变量,不能重新赋值 1.2 删除变量 使用 unset 命令可以删除变量。语法: unset variable_name 变量被删除后不能再次使用。 unset 命令不能删除只读变量。 实例 #!/bin/bash myUrl="http://www.runoob.com" unset myUrl echo $myUrl 2. Shell 字符串 字符串是 shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。 单引号 str='this is a string' 单引号字符串的限制: 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的; 单引号字串中不能出现单引号(对单引号使用转义符后也不行)。 双引号 your

shell编程(1)

℡╲_俬逩灬. 提交于 2019-12-18 09:54:00
一、shell简介   1.脚本:脚本就是一些命令的堆积。   常见的脚本: JavaScript(J S ,前端) ,VBScript, ASP, JSP,PHP(后端) ,SQL(数据库操作语言),Perl, Shell ,python,Ruby,JavaFX, Lua等。   2.shell的优势:    ①Shell属于内置的脚本   ②程序开发的效率非常高,依赖于功能强大的命令可以迅速地完成开发任务(批处理)   ③语法简单,代码写起来比较轻松,简单易学   3.shell简介   Shell 是一个 C 语言编写的脚本语言,它是用户与 Linux 的桥梁,用户输入命令交给 Shell 处理, Shell 将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户。 下面是流程示意图: Shell 既然是工作在 Linux 内核之上,那我们也有必要了解下 Linux 相关知识。 Linux 是一套免费试用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任 务、支持多线程和多 CPU 的操作系统。 1983 年 9 月 27 日,Richard Stallman(理查德-马修-斯托曼)发起 GNU 计划,它的目标是创建一 套完全自由的操作系统。为保证 GNU 软件可以自由的使用、复制、修改和发布,所有的 GNU 软件都