java中命令是什么意思_shell命令中“ &&”的目的是什么?

据我所知,在命令后使用&是在后台运行它。

&用法示例: tar -czf file.tar.gz dirname &

#1楼

“ &&”的一个很常见的用法是使用自动工具编译软件。 例如:

./configure --prefix=/usr && make && sudo make install

基本上,如果配置成功,则运行make进行编译,如果成功,则以root用户运行make来安装程序。 当我最确定一切都会正常工作时,我会使用它,它使我能够做其他重要的事情,例如查看stackoverflow而不是“监视”进度。

有时候我真的被带走了...

tar xf package.tar.gz && ( cd package; ./configure && make && sudo make install ) && rm package -rf

例如,从头开始制作linux时,我会这样做。

#2楼

命令行- &&的目的是什么?

在外壳中,当您看到

$ command one && command two

目的是仅在第一个命令成功时才执行&&的命令。 这是Posix shell的惯用用法,不仅在Bash中发现。

如果第一个进程失败,它旨在阻止第二个进程的运行。

进程返回0表示true,其他正数表示false

程序在退出时返回一个信号 。 如果成功退出,则应返回0;否则,请返回大于零。 这允许进程之间的通信量有限。

&&在posix shell语法中称为AND_IF ,它是and_or命令列表的一部分,该命令还包括|| 这是具有相似语义的OR_IF 。

语法符号,从文档中引用:

%token AND_IF OR_IF DSEMI /* '&&' '||' ';;' */

语法(也从文档中引用)表明可以将任意数量的AND_IF ( && )和/或OR_IF (( || )串在一起(因为and_or递归定义):

and_or : pipeline | and_or AND_IF linebreak pipeline | and_or OR_IF linebreak pipeline

两个运算符具有相同的优先级,并且从左到右进行评估(它们是左关联的)。 正如文档所说:

AND-OR列表是由运算符"&&"和"||"分隔的一个或多个管道的序列 。

列表是一个或多个AND-OR列表的序列,由运算符';'分隔 和'&'并可选地以';'结尾 , '&'或。

运算符"&&"和"||" 应当具有相同的优先级,并应以左联想性进行评估。 例如,以下两个命令仅将bar写入标准输出:

$ false && echo foo || echo bar $ true || echo foo && echo bar

在第一种情况下,false是状态为1的命令$ false $ echo $? 1

这意味着echo foo不运行 (即,将echo foo短路)。 然后执行命令echo bar 。

在第二种情况下,true退出,代码为0$ true $ echo $? 0

因此,不执行echo foo ,然后执行echo bar 。

#3楼

command_1 && command_2 :仅在成功执行command_1时执行command_2。

command_1 || command_2 command_1 || command_2 :仅当未成功执行command_1时才执行command_2。

感觉类似于在主流编程语言中执行“ if”条件的方式,例如if (condition_1 && condition_2){...}如果condition_1为false以及if (condition_1 || condition_2){...}如果condition_1为true则将忽略condition_2。 瞧,这与您编码时使用的技巧相同:)

#4楼

&&让您根据上一个命令是否成功完成执行某些操作-这就是为什么您倾向于将其链接为do_something && do_something_else_that_depended_on_something 。

#5楼

如果第一条语句成功结束,则执行第二条语句。 就像if语句:

if (1 == 1 && 2 == 2)

echo "test;"

它首先尝试1 == 1,如果是,则检查2 == 2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值