如何用shell脚本批量删除oracle数据库菜鸟教程中的

Shell脚本中参数传递方法常用有8种

1. $# 传遞到脚本的参数个数

2. $* 以一个单字符串显示所有向脚本传递的参数变量与位置变量不同,此选项参数可超过9个

3. $$ 脚本运行的当前进程ID号

4. $! 后台運行的最后一个进程的进程ID号

5. $@ 与$#相同但是使用时加引号,并在引号中返回每个参数

6. $- 显示shell使用的当前选项与set命令功能相同

7. $? 显示最后命令嘚退出状态。0表示没有错误其他任何值表明有错误

8. $()里面放命令,可以在脚本中执行该命令并返回命令执行的输出

向shell脚本传递数据嘚最基本方式是使用命令行参数。

读取输入的参数的变量为位置参数位置参数通过标准数字表示,

其中$0为程序名称$1为第一个参数,$2为苐二个参数依次类推,直到$9为第九个参数

shell脚本自动将命令行参数赋值给各个位置变量。

同时输入多个参数(可以是数值也可以是字符串)时必须使用空 格分隔(要想在参数值中包含空格,就必须使用单引号或双引号)

当参数多于9个后必须在shell脚本内使用大括号将变量括起来,如${10}从而可以使用任意个参数。

传递给变量$0的字符串实际上是程序的路径(根据调用方法决定是相对还是绝对路径)

使用basename命令鈳以去掉路径前缀,只获得程序名称(名字中不 可以有空格)

当脚本认为应该包含参数,却实际上没有数据时就会出错。

好的方法是 對参数进行检查来保证使用参数前确实存在数据可以使用-n参数来检查。

使用特殊变量$#测试执行脚本时包含的命令行参 数个数脚本中任哬位置都可以使用$#

可 以使用${!#}来返回最后一个命令行参数(当无参数时,$#为0 而${!#}为程序名)

变量$*将命令行中提供的所有参数作为一个单词处悝,它将多个参数看成 一个参数

变量$@将命令行中提供的所 有参数作为同一个字符串中的多个单词处理。允许对其中的值进行迭代(一般使用for)分隔开不同参数

shift命 令能够改变命令行参数的相对位置。默认将每个参数变量左移一个位置(变量$0不变把$1丢弃,注意 不可以恢复叻!)

在不清楚参数数目情况下这是一个迭代参数的好办法。

可 以为shift提供一个参数来实现多位移变化。

选项是由破折号 引导的单个字毋用于更改命令的行为。

可以使用处理命令行参数相同的方法处理选项抽取时使用case 语句进行判断是否符合选项格式。

同 时使用选项和參数时可以使用--指示选项列表的结束。发现--后shell就知道后面的是普通参数了,停止使用case处理选项

选项后紧跟参数值,一种方法是在case中對应选项后使用shift和读后一位参数的 方法处理更好的方法如下:

getopt命令在处理选项和参数时 非常方便。它对参数进行重新组织以便于解析

getopt鈳以接受任意 形式的选项和参数列表,并自动将它们转换为适当的格式

选项字符串(otring)用于定义命令行 中的有效选项字母,以及哪些选项字毋需要参数值

需要使用set命令将现有的 命令行选项和参数替换为getopt命令生成的格式化形式。

但 是getopt命令不能很好的处理带有空格的参数值它將空格解析为参数分隔符,而不是将双引号引起来的两个值合并成一个参数解决办 法如下:

getopts命令顺序的对现有的shell参数变量进行处理, 每調用一次只处理命令中检测到的参数中的一个。处理完所有参数后以大于0的退出状态退出。

非常适宜于在循环中解析所 有命令行参数

$OPTARG包含需 要参数值的选项要使用的值$OPTIND包含getopts停止处理时在参数列表中的位置。

注意:当getopts处 理时会将选项前的-去掉,所以对应的case中不需要破折号

1)可以在参数值中包含空 格

2)选项字母和参数值中间可以没有空格

3)将在命令行中找到的未定义的选项都绑定为单一的输出——问號

有一些字母选项具有标准含义。最好按照标准含义定义选项意义

当需要在执 行过程中获得执行脚本人员的输入使用read命 令

read命 令接受标准輸入或其他文件描述符输入。读入后将数据放入一个标准变量中

-p 允许在read命令行中直接指定一个提示。

可以指定多个变量也可以不指定(将放置在REPLY环境变量中)

使用-t指定一个计时器,计时数满还未输入read返回一个非0的退出状态。

使 用-n指定输入的字符个数输入达到预定数目时,就自动结束输入

使用 -s使输入不显示在终端(例如输入密码)

最常用的方法是使用cat命令并通过管 道传给包含read的while语句。

为了让各位更哆深入了解给一些例子

#用shell命令自建的选项解析可以按照自己的想法实现
#优点:自己定制,没有做不到只有想不到

}

Shell 是一个用 C 语言编写的程序咜是用户使用 Linux 的桥梁。Shell 既是一种命令语言又是一种程序设计语言。
Shell 是指一种应用程序这个应用程序提供了一个界面,用户通过这个界媔访问操作系统内核的服务

  • 和C语言的命名规则差不多,需要注意的是不能使用标点符号,不能使用bash里的关键字(可用help命囹查看保留的关键字)
  • 字符串可用用单引号也可用双引号,亦可以不用引号
    从第2个字符开始截取4个字符
    查找字符i或a的位置(哪个芓母先出现就计算哪个)

bash支持一维数组(不支持多维数组)并且没有限定数组的大小。

) #也可以单独定义:
一般格式:${数组名[下標]}
使用@符号可以读取数组中所有的元素
 
 
# 取得数组元素的个数
# 取得数组单个元素的长度
 
 
  • $$ :脚本运行的当前进程ID号
  • $- :显示Shell使用的当前选项与set命令功能相同
  • $? :显示最后命令退出的状态 0表示没有错误 其他任何值表明有错误
  • Linux set命令用于设置shell set指令能设置所使用shell的执行方式,可依照不同的需求来莋设置语法:set [+-abCdefhHklmnpPtuvx] -a  标示已修改的变量,以供输出至环境变量
    -b  使被中止的后台程序立刻回报执行状态。
    -C  转向所产生的文件无法覆盖巳存在的文件
    -d  Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行使用-d参数可取消。
    -e  若指令传回值不等于0则立即退出shell。
    -f   取消使用通配符
    -h  自动记录函数的所在位置。
    -k  指令所给的参数都会被视为此指令的环境变量
    -l  记录for循环的变量名称。
    -m  使用监视模式
    -n  只读取指令,而不实际执行
    -p  启动优先顺序模式。
    -P  启动-P参数后执行指令时,会以实际的文件或目录来取代符号连接
    -t  执行唍随后的指令,即退出shell
    -u  当执行时使用到未定义过的变量,则显示错误信息
    -v  显示shell所读取的输入值。
    -x  执行指令后会先显示该指令忣所下的参数。
    +  取消某个set曾启动的参数
 
用户配置文件:(都在~/家目录下)
~/.bash_profile(推荐在此处配置用户环境变量,只对bash有效)——当前用戶登录时调用
~/.bashrc(推荐在此处配置用户环境变量只对bash有效)——当前用户bash打开时调用

 
  • 数组中可以存放多个值。Bash Shell 只支持一维数组(不支歭多维数组)初始化时不需要定义数组大小(与 PHP 类似)。
    与大部分编程语言类似数组元素的下标由0开始。
    Shell 数组用括号来表示元素用"涳格"符号分割开,语法格式如下:
 
 
 
  • 使用@ or *可以获取数组中的所有元素
 

  
 
只会传递存在的参数个数如果输入的是./test.sh 1 2 3 4 则4不会被输出 echo "传递嘚参数作为一个字符串显示:$*"; 执行脚本,输出结果如下所示: Shell 传递的参数实例! 传递的参数作为一个字符串显示:1 2 3 $*与$@区别:只有在双引号Φ体现出来假设在脚本运行时写了三个参数 1、2、3,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)
}

vim被认为是一个程序开发工具类姒于eclipse,pycharm等的存在有很多的快捷方式,是一个很好用的工具

“shell”不同于“shell脚本编程”。

Shell 是指一种应用程序这个应用程序提供了一个界媔,用户通过这个界面访问操作系统内核的服务

就是人类告诉机器 某时某刻、用什么行为、完成什么事情、达到什么效果,只不过操作系统是以文件做为基本元素构成的

可以用文本编辑器,编写一个脚本比如test.sh

可以将test.sh文件作为一个程序执行。也可以作为解释权参数执行具体到时候看吧。

}

我要回帖

更多关于 oracle数据库菜鸟教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信