shell脚本(linux)

shell脚本(linux),第1张

#下面是脚本内容,注意修改/etc/hosts文件需要超级用户权限,换句话说,你需要sudo执行本脚本。

#!/bin/bash

DELIM="'"

N=2

echo "Please pull the file to me"

#read storepath1

storepath1="/etc/hosts"

storepath1=`echo "$storepath1" | cut -d "$DELIM" -f $N`

#这个好理解:

#1把不是以#号开头的行替换为以!!@开头

#2把以#号开头的行的 #号删除

#3把!!@替换为# 号

#sed -i -r -e '/^#/! s|^|!!@|' -e 's|^#||' -e 's|^!!@|#|' "$storepath1"

#这个精炼些

#如果行以 #号开头,则删除#。

# 如果刚刚进行了删除 *** 作,那么执行t *** 作,跳到sed脚本末尾,结束 *** 作。

# 如果刚刚没有进行删除 *** 作,那么继续执行s|^|#|,将开头添加 #号。

#sed -i -r -e 's|^#||;t;s|^|#|' "$storepath1"

#这个匹配3位数+点开头的行

#原理同上,只不过不是处理每一行,而是处理以三位数加点号开头的行。

sed -i -r -e 's|^#([0-9]{3}\)|\1|;t;s|^([0-9]{3}\)|#\1|' "$storepath1"

shell中可以直接获取PPID,即父进程的进程ID。这样结合ps命令就可以获取父进程名(即你说的调用方的名称)了。

ash内容:

/bsh

bsh内容:

ps | grep $PPID | awk '{print $NF}'

但是调用 bsh时使用后台运行方式(/bsh &)会有问题,必须阻塞调用。

自己思考一下完全能写出来

首先ls得到a文件夹下的所有文件 保存到变量

然后循环该变量 截取变量扩张名之前的文件名 测试b目录是否存在该文件

如果有直接mv覆盖

以上就是关于shell脚本(linux)全部的内容,包括:shell脚本(linux)、Linux命令、编辑器与Shell编程的目录、听说过一个shell窗口的网页,可以输入linux命令,想知道具体网址是啥。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10635560.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存