亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

&&:的目的是什么?在bash腳本中

&&:的目的是什么?在bash腳本中

躍然一笑 2021-04-12 16:14:02
我遇到了一個bash腳本,該腳本在一個函數中運行以下命令set -erm -rf some_dir/* && :;&& :;在這方面的目的是什么?編輯:我知道這是的同義詞&& true,但現在我不了解它為何繞過set -e嘗試一下,我看到運行以下命令#!/bin/bash -e# falseecho false alone return 1 and fail with -efalse || trueecho "false || true return $?"false || :;echo "false || :; return $?"false && trueecho "false && true return $?"false && :;echo "false && :; return $?"false && :echo "false && : return $?"產出false alone return 1 and fail with -efalse || true return 0false || :; return 0false && true return 1false && :; return 1false && : return 1
查看完整描述

2 回答

?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

&&很容易解釋。在bashman頁面中:

command1 && command2

僅當command1返回退出狀態為零時,才能執行command2。

:在文檔中很難找到。:是一個等效于的內置函數true

:; echo $? 
0

因此,總的來說,此命令等于:

遞歸刪除目錄,如果rm成功,則運行'true'。

不過,這似乎沒有必要,因為&&已經“測試”了rm返回的真,所以有點像在做true && true。

更常見的是,當您想要if/elseelse做某事的地方時使用,例如

if command1; then :; else command2; fi

盡管這僅在您的系統沒有true命令時才有用,但是對于以后的代碼閱讀者來說,可以說更容易理解。(或者,您可以使用否定測試,而不用完全不操心)。


查看完整回答
反對 回復 2021-04-16
  • 2 回答
  • 0 關注
  • 307 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號