优秀的编程知识分享平台

网站首页 > 技术文章 正文

浅谈Linux中的&&和ll,补充&和l

nanyue 2024-09-10 16:12:24 技术文章 4 ℃

简单的介绍以下两者的用法

&&:

表示前一条命令执行成功时,才执行后一条命令。

案例:

ls a.txt && echo "存在a.txt"

如果ls a.txt执行成功,即:存在a.txt

就会执行echo "存在a.txt"

ls aa.txt && echo "打印我,是不存在的"

ls aa.txt执行失败,不执行后面的打印

||:

表示前一条命令执行失败时,才执行下一条命令。

案例:

ls cc.txt || echo "不存在cc.txt才会执行我"

当ls cc.txt 执行失败才会执行打印

补充一个综合的案例:

[root@kingdom demo1]# ll

total 0

-rw-r--r-- 1 root root 0 Jan 18 16:46 a.txt

-rw-r--r-- 1 root root 0 Jan 18 16:46 b.txt

-rw-r--r-- 1 root root 0 Jan 18 16:46 c.txt

-rw-r--r-- 1 root root 0 Jan 18 16:47 file1

-rw-r--r-- 1 root root 0 Jan 18 16:47 file2

-rw-r--r-- 1 root root 0 Jan 18 16:47 file3

[root@kingdom demo1]# ls a.txt &> /dev/nul && echo "ls 执行成功" || echo "我前面的命令失败时,才执行我"

ls 执行成功

[root@kingdom demo1]# ls aa.txt &> /dev/nul && echo "ls 执行成功" || echo "我前面的命令失败时,才执行我"

我前面的命令失败时,才执行我

[root@kingdom demo1]# ls a.txt &> /dev/nul && ls aa.txt > /dev/nul || echo "我前面的命令失败时,才执行我"

ls: cannot access aa.txt: No such file or directory

我前面的命令失败时,才执行我

[root@kingdom demo1]#

补充& and |:

&:

放在命令后面表示设置此进程为后台进程。

简单的解释:

默认情况,进程为前台进程。这时进程会把Shell占据,无法进行其他操作。

对于没有交互的进程,我们希望将其在后台启动,此时在启动参数的时候加一个&可以实现这个目的。

案例:

以redis为例

./redis-server

Redis进程把Shell占据,我们只能再开一个终端。

把redis设置为后台进程

./redis-server &

查看一下进程

|:

管道,上一条命令的输出,作为下一条命令参数。

案例:

ls | grep ".txt"

简单的解释一下

ls执行输入的结果a.txt b.txt c.txt file1 file2 file3

作为grep ".txt"过滤的输入参数

测试完成

欢迎大家给予宝贵的意见或者建议。

欢迎大家补充或者共享一些其他的方法。

感谢支持。

Tags:

最近发表
标签列表