正则匹配、后台运行和单双引号

1.正则匹配(批处理)

写脚本将登陆目录里的所有以a为第2个字母,以数字结尾的cpp文件拷贝到zhangsan的根目录里
拷贝文件的命令脚本需要赋予可执行权限,在用户间相互拷贝文件需要root权限。
在这里插入图片描述

后台运行

** 如下100000次循环脚本 1.sh**

$ vi 1.sh
for((i=0;i<100000;i++))
  do
   echo hello is $i
   cp    
  done  
 $ chmod u+x ./1.sh

试着前台运行,然后中断。
试着后台运行,然后中断。含输出重定向debug.txt和错误重定向error.txt

nohup ./1.sh >debug.txt 2>error.txt &
在这里插入图片描述
在这里插入图片描述
实验中发现使用Ctrl+C并没有终止前台任务,仍然在不断输出。故使用Ctrl+Z命令中断任务,仍然可以通过fg将任务重新在前台启动或者使用bg让任务在后台继续执行。

试验一下,当退出该字符终端,再重新登录回来,1.sh是否还在运行 ?
试验一下,如果不用nohup而是直接运行 1.sh ,当退出该字符终端,再重新登录回来,1.sh是否还在运行 ?

退出后1.sh仍然在运行,nohup命令表示不挂起也就是在后台不挂断运行命令,退出终端不影响程序运行。重新登陆无法用jobs命令显示正在运行的程序,可以使用ps命令直接查询,并且可以获得进程号,用于杀死后台的进程。
在这里插入图片描述
不使用nohup命令运行脚本时,脚本在当前终端的父进程下运行,退出终端杀死该进程后,脚本子进程也相应结束。

在程序运行时,怎样监控程序的输出值 (tail -f debug.txt tail -f error.txt)
怎样知道文件 debug.txt有多少行 (wc -l debug.txt)

重定向输出程序运行结果以及报错的日志文件,而使用tail命令可以看到文件的末尾行,由于文件内容不断增加,从而可以动态监控程序输出。使用wc -l命令可以查询文件行数。
在这里插入图片描述
在这里插入图片描述

单双引号

定义一个常量varc , 使得这个常量的内容为 #hello $world
单引号内的内容直接输出,$不会显示变量而是直接显示。也即单引号不解析特殊字符。
在这里插入图片描述
定义一个变量varx,使得这个变量含有当前登陆用户名,当前目录 和当前目录里的所有文件名和目录名
双引号内可以显示去除特殊符号的含义,也即会解析双引号之间的内容。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值