shell脚本

Shell脚本入门-5

一笑奈何 提交于 2020-01-07 07:49:17
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。 与大部分编程语言类似,数组元素的下标由0开始。 Shell 数组用括号 来表示, 元素用"空格"符号分割开 ,语法格式如下: array_name=(value1 ... valuen) 实例 #!/bin/bash # author:ethan my_array=(A B "C" D) 我们也可以使用下标来定义数组: array_name[0]=value0 array_name[1]=value1 array_name[2]=value2 读取数组 读取数组元素值的一般格式是: ${array_name[index]} 实例 #!/bin/bash # author:ethan my_array=(A B "C" D) echo "第一个元素为: ${my_array[0]}" echo "第二个元素为: ${my_array[1]}" echo "第三个元素为: ${my_array[2]}" echo "第四个元素为: ${my_array[3]}" 执行脚本,输出结果如下所示: $ chmod +x test.sh $ ./test.sh 第一个元素为: A 第二个元素为:

sh和bash之间的区别

那年仲夏 提交于 2020-01-07 00:51:16
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在编写shell程序时,我们经常使用 /bin/sh 和 /bin/bash 。 我通常使用 bash ,但是我不知道它们之间有什么区别。 bash 和 sh 之间的主要区别是什么? 在使用 bash 和 sh 编程时,我们需要注意什么? #1楼 Shell 是用户和OS之间的接口,用于访问操作系统的服务。 它可以是GUI或CLI(命令行界面)。 sh (Bourne sh ell)是一个Shell命令行解释器,用于类似Unix / Unix的操作系统。 它提供了一些内置命令。 在脚本语言中,我们将解释器表示为 #!/bin/sh 。 它是bash(自由/开放),kash(非自由)之类的其他shell支持最广泛的一种。 击 (B ourne 增益 的 地狱)是一个外壳更换对于Bourne壳。 Bash是sh的超集。 Bash支持sh。 POSIX是一组定义POSIX兼容系统应如何工作的标准。 Bash实际上不是POSIX兼容的外壳。 在脚本语言中,我们将解释器表示为 #!/bin/bash 。 比喻: Shell就像一个接口或规范或API。 sh是实现Shell接口的类。 Bash是sh的子类。 #2楼 /bin/sh 可能会也可能不会调用与 /bin/bash 相同的程序。 sh 至少 支持 POSIX所需

shell编程题(十四)

断了今生、忘了曾经 提交于 2020-01-06 10:16:44
题目: 编写一个的脚本,它包括以下内容 a) 包含一段注释,列出您的姓名、脚本的名称和编写这个脚本的目的。 b) 问候用户。 c) 显示日期和时间。 d) 显示这个月的日历。 e) 显示您的机器名。 f) 显示当前这个操作系统的名称和版本。 g) 显示父目录中的所有文件的列表。 h) 显示root正在运行的所有进程。 i) 显示变量TERM、PATH和HOME的值。 j) 显示磁盘使用情况。 k) 用id命令打印出您的组ID。 m) 跟用户说“Good bye” 答案: #!/bin/bash user=`whoami` case $user in root) echo "hello robot";; ubuntu) echo "hello ubuntu";; *) echo "hello $user, welcome" esac echo "date: `date`" echo "calendar: `cal`" echo "name: `uname -n`" echo "name of operation and version: `uname -s; uname -r`" echo "all file list of parent menu: `ls ../`" echo "all process running of root: `ps -u root`" echo

Oralce SQLPlus 以及shell脚本中spool输出到文件时的格式化输出

点点圈 提交于 2020-01-06 00:59:12
http://blog.csdn.net/gyanp/article/details/7903056 1) 格式调整有以下参数 set echo on/off 是否显示脚本中的需要执行的命令 set feedback on/off 是否显示 select 结果之后返回多少行的提示 set linesize n 设置一行最多显示多少字符,之前就是因为 n 设得过大,导致行与行之间有空白行 set termout on/off 在执行脚本时是否在屏幕上输出结果,如果 spool 到文件可以将其关闭 set heading on/off 是否显示查询结果的列名,如果设置为 off,将用空白行代替,如果要去除该空白行,可以用 set pagesize 0 set pagesize n 设置每页的行数,将 n 设为 0 可以不显示所有 headings, page breaks, titles, the initial blank line, and other formatting information set trimspool on/off 在 spool 到文件时是否去除输出结果中行末尾的空白行或者空白字符,之前的隔行可以用该参数去掉,和该参数对应的是 trimout,后者用于屏幕输出 set trimout on/off 是否去掉屏幕上输出结果行末尾的空白字符 set space

Oh-My-Zsh的配置与使用

久未见 提交于 2020-01-05 19:05:31
什么是Shell? 相对于内核来说,Shell是Linux/Unix的一个外壳,它负责外界与Linux内核的交互,接收用户或其他应用程序的命令,然后把这些命令转化成内核能理解的语言,传给内核,内核是真正干活的,干完之后再把结果返回用户或应用程序。 简单的说,shell就是那“黑乎乎”的命令行。 Shell的分类 Linux/Unix提供了很多种Shell,不同的shell具备不同的功能,shell还决定了脚本中函数的语法,Linux中默认的shell是/bin/bash; 想知道你的系统有几种shell,可以通过以下命令查看: cat /etc/shells 显示如下: /bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcsh /bin/zsh bash 这个是目前大多数Linux系统默认使用的shell,全名是BourneAgain Shell,一共有40个命令。包含的功能几乎可以涵盖shell所具有的功能,所以一般的shell脚本都会指定它为执行路径。 在 Linux 里执行这个命令和 Mac 略有不同,你会发现 Mac 多了一个 zsh,也就是说 OS X 系统预装了个 zsh,它是什么呢? zsh介绍 zsh 是一款功能强大的 shell 软件,它可以兼容 bash,并且提供了很多高效的改进。它是Linux里最庞大的一种shell

Linux Bash Shell编程快速入门

空扰寡人 提交于 2020-01-05 12:04:50
BASH 的基本语法 最简单的例子 —— Hello World! 关于输入、输出和错误输出 BASH 中对变量的规定(与 C 语言的异同) BASH 中的基本流程控制语法 函数的使用 2.1 最简单的例子 —— Hello World! 几乎所有的讲解编程的书给读者的第一个例子都是 Hello World 程序,那么我们今天也就从这个例子出发,来逐步了解 BASH。 用 vi 编辑器编辑一个 hello 文件如下: #!/bin/bash # This is a very simple example echo Hello World 这样最简单的一个 BASH 程序就编写完了。这里有几个问题需要说明一下: 一,第一行的 #! 是什么意思 二,第一行的 /bin/bash 又是什么意思 三,第二行是注释吗 四,echo 语句 五,如何执行该程序 #! 是说明 hello 这个文件的类型的,有点类似于 Windows 系统下用不同文件后缀来表示不同文件类型的意思(但不相同)。Linux 系统根据 “#!” 及该字串后面的信息确定该文件的类型,关于这一问题同学们回去以后可以通过 “man magic”命令 及 /usr/share/magic 文件来了解这方面的更多内容。在 BASH 中 第一行的 “#!” 及后面的 “/bin/bash” 就表明该文件是一个 BASH 程序,需要由

shell脚本传递日期参数的处理

二次信任 提交于 2020-01-03 15:59:46
传递的时间参数为: ./sqoop_member_test2.txt “2019-06-28 00:14:05” #!/bin/bash d1=$(date -d "$1" +%Y-%m-%d" "%H:%M:%S) //将时间赋值给变量 if (date > "$d1") then echo "小于当前时间" else echo "大于当前时间" fi echo "$d1 ,$*" 来源: CSDN 作者: 骚白~ 链接: https://blog.csdn.net/qq_43473129/article/details/103819779

shell实现随机数多种方法(data,random,uuid)

自闭症网瘾萝莉.ら 提交于 2020-01-03 09:24:54
在日常生活中,随机数实际上经常遇到,想丢骰子,抓阄,还有抽签。呵呵,非常简单就可以实现。那么在做程序设计,真的要通过自己程序设计出随机数那还真的 不简单了。现在很多都是操作系统内核会提供相应的api,这些原始参数是获取一些计算机运行原始信息,如内存,电压,物理信号等等,它的值在一个时间段可 以保证是唯一的了。好了,废话我就不说了。呵呵。 shell脚本程序我们有那些获得随机数方法呢? 一、通过时间获得随机数(date) 这个也是我们经常用到的,可以说时间是唯一的,也不会重复的,从这个里面获得同一时间的唯一值。适应所有程序里面了。 例子: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 [chengmo@centos5 shell]$ date +%s 1287764773 #获得时间戳,当前到:1970-01-01 00:00:00 相隔的秒数 #如果用它做随机数,相同一秒的数据是一样的。在做循环处理,多线程里面基本不能满足要求了。 [chengmo@centos5 shell]$ date +%N 738710457 #获得当前时间的纳秒数据,精确到亿分之一秒。 #这个相当精确了,就算在多cpu,大量循环里面,同一秒里面,也很难出现相同结果,不过不同时间里面还会有大量重复碰撞 [chengmo@centos5 shell]$ date +%s%N

标准库os

时间秒杀一切 提交于 2020-01-02 22:41:43
os模块 提供对操作系统进行调用的接口 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir( "dirname" ) 改变当前脚本工作目录;相当于shell下cd os.curdir 返回当前目录: ( '.' ) os.pardir 获取当前目录的父目录字符串名:( '..' ) os.makedirs( 'dirname1/dirname2' ) 可生成多层递归目录 os.removedirs( 'dirname1' ) 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 os.mkdir( 'dirname' ) 生成单级目录;相当于shell中mkdir dirname os.rmdir( 'dirname' ) 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname os.listdir( 'dirname' ) 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 os.remove() 删除一个文件 os.rename( "oldname" , "newname" ) 重命名文件 / 目录 os.stat

shell脚本批量创建用户

微笑、不失礼 提交于 2020-01-02 16:28:28
shell脚本交互式批量创建用户: #!/bin/sh #Interactive bulk user creation #num:Number of users created #num>0 declare -i num read -p 'Please enter the number of users to create:' num for i in `seq 1 $num` do read -p "Please enter the username of the $i user you want to create:" username useradd $username echo "Please give the user:$username a password!" passwd $username done shell脚本批量创建用户,用户密码初始化为:123456,第一次登录时强制修改密码 #!/bin/sh #Create users in batches with an initial password of 123456, and force the password to be changed at the first login #num:Number of users created #num>0 declare -i num read -p 'Please