shell 编程

本文详细介绍了Shell脚本的基础语法与高级特性,包括条件判断、变量操作、流程控制及如何结合SQL与expect实现自动化任务。通过实例解析,帮助读者深入理解并掌握Shell脚本的编写技巧。
#!/bin/bash    #表示shell解释器的位置  可用 which  bash  或者whereis bash 查找
set -e #该行如果出错,程序就中断,如果不加该行,程序中途出错就会继续执行,风险比较高。
a=$(ls $1*|wc -l)  #ls 列出文件夹下文件,删选$1参数开头的文件,wc -l统计行数
if [ "${a}" == "3" ]; then  #判断变量a的值是不是3,注意[]中两端有空格
    echo "yes"        #输出  字符串
else 
#su - zll2 -s /bin/bash /home/zll2/bin/3.sh $1     #切换用户到zll2下  -s 后可以跟一个shell脚本  #c  "需要执行的命令"    可以把$1作为参数传给  3.sh
    /bin/bash /home/zll2/bin/3.sh $1
fi   #if的结束符
a=12344
unset a  删除变量a
echo $a  输出a的值
echo $aasdfg 输出12344asdfg
echo $0  输出脚本名 
echo $?  输出前一个命令的执行结果标志  0 成功   1  失败  可以在每个命令后加判断
echo `ls $1*|wc -l` 输出 前一条命令的结果   用esc 下面的点号不是单引号括起来,单引号会输出字符串
echo ${a:0:3}  输出123  从第一位开始截取3位
echo ${a:0:3} >>1.txt  输出字符串的内容重定向到1.txt中  >>是替换原来内容,>在原内容追加
pwd  1>>1.txt 2>>txt   pwd的输出如果成功,把结果重定向到 1.txt  失败输出到2.txt   >>前的数字1代表成功   2表示失败
pwd 1>1.txt 2>&1  所有的日志都输出到1.txt中
cat >123.txt  输入重定向  到123.txt  键盘输入随意字符串重定向到  123.txt中
cat >123.txt <<EOF   输入重定向  EOF 是一个启停标识 end  of file
dfghdcvbn
fghjkcvb
EOF#结束标志符
#!/bin/bash
#在shell脚本中执行sql脚本  传入$1参数
set -e
sqlplus test/test@testdb<<EOF
@test.sql $1
commit;
EOF
#!/bin/expect    //这个expect的路径就是用which expect 查看的结果
#利用expect可以把交互式的命令写入脚本
#yum -y install expect安装expect
spawn su - zll2   #执行shell命令
expect "Password:"#判断标准输出是否包含字符串Password: 
send "zll243249703~/r"#如果包含就输入以下命令,和在命令行手动输入一样  /r 表示换行,类似于回车键
interact #退出该交互过程
#其他的交互过程也可以这样写,在shell脚本中遇到交互的命令就需要手动输入,这样降低了程序的自动化过程,所以shell脚本中可以调用expect脚本   expect  1.sh
  • shell脚本在写完以后 需要改变其模式 chmod +x 1.sh 改为可执行状态,默认是所有者,同用户组的其他人,其他用户,+x都有执行的权利。uog+x
    user groupuser otheruser
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值