常用的几种脚本文件

常用的几种脚本文件有:except脚本 bash脚本 python脚本 (解释性语言,无需编译,即可运行)

#!/usr/bin/except

except脚本,Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。

#!  /bin/bash

通过/usr/bin/bash运行程序,其指定了程序的具体位置,在某些情况下更安全,因为它限制了代码注入的可能。

#!  /usr/bin/env bash

通过/usr/bin/env运行程序,用户不需要去寻找程序在系统中的位置(因为在不同的系统,命令或程序存放的位置可能不同),程序的位置存放在$PATH中;

python脚本文件

 

bash语法:

rsync: 用于从一个位置到另外一个位置同步文件和文件夹。备份的地址可以是本地也可以是远程   rsync -av --exclude=[...]  [.....] [.....]

sed: 逐行读取文件的内容,读到就执行相应的操作(主要用于替换文件中的字符串)

echo: 输出字符串

find: 查找文件                      find 目录 -name "文件名"

grep: 以行为单位读取文本并使用正则表达式进行匹配,匹配成功后打印出该行文本    grep [option] "string_to_find" filename

grep常见选项:

(1)-i:忽略搜索字符串的大小写

(2)-v:取反,即输出不匹配的那些文本行

(3)-n:输出行号

(4)-l:输出能够匹配模式的文件名,相反的选项为-L

(5)-q:静默输出

(6)-c:计算匹配成功的行数

(7)-o:输出匹配到的文本部分的个数

(8)-e:该选项加上正则表达式就是一个需要匹配的模式

(9)-r:grep的参数filename为目录时可以加上本选项表示递归搜索

(10)--include:指定需要搜索的文件

(11)--exclude:排除需要搜索的文件

(12)--exclude-dir:排除需要搜索的目录

 

shell中的特殊字符:

  • $  美元符号。用来表示变量的值。如变量NAME的值为Mike,则使用$NAME就可以得到“Mike”这个值。
  • #  井号。除了做为超级用户的提示符之外,还可以在脚本中做为注释的开头字母,每一行语句中,从#号开始的部分就不执行了。
  •  “”  双引号。shell不会将一对双引号之间的文本中的大多数特殊字符进行解释,如#不再是注释的开头,它只表示一个井号“#”。但$仍然保持特殊含义。(在双引号中的$加变量名,即:$PARAM_NAME,依然会转换成变量的值。),双引号对于某些特殊符号是不起作用的, 例如:”,$,\,`(反引号)。双引号和单引号不能嵌套。即:echo ‘””’  输出””,  echo “’’” 输出’’
  • ‘’  单引号。shell不会将一对单引号之间的任何字符做特殊解释。(在双引号中的$加变量名,即:$PARAM_NAME,不会转换成变量的值。)
  • ``  倒引号。命令替换。在倒引号内部的shell命令首先被执行,其结果输出代替用倒引号括起来的文本,不过特殊字符会被shell解释。
  •   \  斜杠。用来去掉在shell解释中字符的特殊含义。在文本中,跟在\后面的一个字符不会被shell特殊解释,但其余的不受影响。
  •  []中括号, 主要是用来测试条件的,通常放在if语句的后面。 中括号本身不会在测试语句执行后消失。
  •  {}大括号,主要是和$符号配合,作为字符串连接来使用。echo ${HOME}ismydir   (结果:/home/xiongguoanismydir)

 

except语法:

set: 设置参数值    set timeout 30

spwan: 是进入expect环境后才可以执行的expect内部命令,使用前必须要装except。

它主要的功能是给ssh运行进程加个壳,用来传递交互指令。  spawn ssh -l username 192.168.1.1

except: 是expect的内部命令,用来判断上次输出结果里是否包含“password:”的字符串,如果有则立即返回,否则就等待一段时间后返回,这里等待时长就是前面设置的30秒     expect "password:"

send: 执行交互动作,与手工输入密码的动作等效   send "ispass\r"

interact: 执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了

$argv: 参数数组,expect脚本可以接受从bash传递过来的参数.可以使用[lindex $argv n]获得,n从0开始,分别表示第一个,第二个,第三个....参数

 

参考网址:https://www.cnblogs.com/chengjian-physique/p/11768641.html

posted @ 2020-10-20 15:49  wangssd  阅读(1794)  评论(0编辑  收藏  举报