资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

linux命令done linux命令docker ps

在linux中 “# for i in `ls` ; do su -sh $i ; done ”命令是什么意思?

首先 在命令前面有个 '#'的意思是本句话是注释,并不实际执行...

成都创新互联是专业的醴陵网站建设公司,醴陵接单;提供成都网站设计、成都做网站、外贸网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行醴陵网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

再说你后面语句的意思,for ... in .... ; done是循环结构,ls是查看目录下的文件,su是以另一个身份($i),来运行一个shell,但问题是su 没有-sh选项,也就是说你这句话应该有问题才对.

整体分析是遍历将当前目录下的文件,每个文件执行su -sh XXX(这里XXX是当前目录下的所有文件),功能尚不明确,还请楼主明示.

Linux里面$!作用是什么?

题主你好,

前提: 我们知道每个进程运行后,系统都会分配给其一个id号,这个id号和进程是关联的,我们可以通过操作该id来实现操作对应进程的目的,如通过id杀死进程等.

$!很多人解释为后台运行的最后一个进程的id号(我觉得解释为最近一次后台运行的id号更容易理解). 举个例子说一下吧,这样更直观一点.

我们先准备一个简单的脚本1.sh, 里面内容很简单,就是睡眠100秒:

下面我们在后台运行这个脚本,看一下$!的输出结果:

从上图可以看出, 脚本运行后,系统分配给它的进程id是54821, 后面我们连续输出三次$!,得到的结果是一样的,都是54821.  因为1.sh这个脚本就是我们最近一次后台运行的脚本,所以此时无论输出多少次$!结果都是一样的.

-----

接下来, 我们再运行一个内容同1.sh相同的2.sh:

可以看到, $!的输出结果变为了54860,不再是上面的54821. 因为此时2.sh是我们最近一次后台运行的脚本,因此,$!结果变为了54860.

=====

希望可以帮到题主, 欢迎追问.

如何在linux命令行中循环执行命令

1、for FILE in $(ls); do [COMMAND]; done

2、for a in {1..100}; do echo $RANDOM; done

3、for (( c=1; c=5; c++ )); do echo $RANDOM; done

4、for ((c=1; c21; c+=2)); do echo "Welcome $c times" ; done

5、for line in $(cat user.txt); do getent shadow $line; done

6、for FILE in $(cat file); do tar zcf $FILE.tar.gz $FILE;rm -rf $FILE; done

7、# awk计算所有行所有区域的总和

awk '{for (i=1; i=NF; i++) s=s+$i}; END{print s}'

Linux批量去掉文件名前缀

如下文件名批量修改:

202007070923_12345678.txt

202007070923_23456789.txt

使用命令:

for name in 2020*.txt; do mv "$name" "${name#*_}"; done

命令解析:

#*_为删除第一个"_"符号左边的所有字符(包括第一个"_");

整体命令为:循环查找2020开头的txt文件,并将文件名只保留第一个"_"符号后面的部分.


分享标题:linux命令done linux命令docker ps
文章起源:http://cdkjz.cn/article/dojgdej.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220