&& 和 ; 命令链.note

noteId: EC9E1324AF9C4B0BB2644963751445A7 · 原始路径:/ALL/Linux - A模块/有用的零散配置/&& 和 ; 命令链.note · 图片:2 · 附件待处理:0

; 和 && 作用一样,先讲 &&:
 
在一个命令最后 可以添加 一个 && 以用来执行额外的命令
&& 可以无限制添加组合命令
"&&" 的作用是将两个或多个命令组合在一起,形成一个命令链。这些命令将按照它们出现的顺序依次执行,如果前一个命令成功执行,则会执行到下一个命令;如果前一个命令执行失败,则会立即停止整个命令链的执行。
 
&& 执行条件是 只有命令执行后的返回值 为 0 (正确执行),才会继续执行下一条命令
只有当 命令执行后返回值不为 0 (执行出错)时,&& 就会停止执行下一条命令
 
 
1、命令执行失败:
当一个命令执行时发生了错误并且无法完成它的任务时,它会返回一个非零值表示执行失败。例如,如果使用 apt-get 安装软件包失败,apt-get 命令会返回一个非零值。
 
2、命令参数不正确:
有些命令需要输入正确的参数才能正确执行,如果参数不正确,命令会返回一个非零值。例如,ls 命令需要输入正确的目录或文件路径,否则会返回一个非零值。
 
3、命令文件不存在或无法读取:
如果命令所依赖的文件不存在或无法读取,命令会返回一个非零值。例如,使用 cat 命令读取一个不存在的文件会返回非零值。
 
4、命令权限不足:
如果当前用户没有执行该命令的权限,或者命令需要在特殊的用户或组权限下运行,则命令会返回一个非零值。
 
5、命令被中断:
当命令执行过程中被中断时,命令可能会返回一个非零值。例如,当我们用 Ctrl+C 组合键中断正在执行的命令时,命令会返回一个非零值。
 
1、命令没有出现错误:当一个命令成功执行完成,并且在执行过程中没有出现任何错误时,它会返回 0。
 
2、命令成功完成了任务:当一个命令成功的完成了它的任务时,它会返回 0。例如,当使用 apt-get 安装一个软件包时,如果安装成功,apt-get 命令会返回 0。
 
3、命令检查通过:有些命令会对一些条件进行检查,如果条件符合要求,命令会返回 0;反之,如果条件不符合要求,则会返回非 0 的值。例如,test 命令用于检查文件和目录的状态,如果测试通过,则会返回 0。
 
4、命令执行成功但未输出内容:有些命令执行成功但并不会输出内容,此时它们也会返回 0。例如,touch 命令用于创建一个空的文件,默认情况下不会输出任何内容,但是它会返回 0 表示成功创建文件。
一条命令执行成功,并不代表它执行的过程中没有出现任何错误。如果一个命令出现了一些错误或异常情况,但最终还是执行完成了它的任务,它的返回值可能仍然为 0。
举个例子,假设我们想把一个文件复制到另一个目录。如果目标目录不存在,cp 命令就会出现错误。但是,如果我们在之后手动创建了目标目录,再运行 cp 命令,则 cp 命令会成功执行并返回 0。虽然这个命令执行过程中出现了错误,但最终它还是完成了它的任务,所以它的返回值是 0。
因此,一个命令的返回值只是表示它执行的结果,不一定能够准确地反映它执行的过程。
 
 
 
&& 的用法很简单,只需要在你想要连接的代码中间加上 && ,就可以了
不过要注意, && 是 从左到右 ,依照顺序执行的
 
例如:
使用 touch 在 /home 下创建一个文件,并使用 ls 查看它:
touch /home/file && ls /home/file
 
;的用法和上述一样: