Shell學習——Shell運算符

文章目錄

  • 運算符
    • 算術運算符
    • 關系運算符
    • 布爾運算符
    • 邏輯運算符
    • 字符串運算符

運算符

算術運算符

#!/bin/bash
a=10
b=20val=`expr $a + $b`
echo "a + b : $val"val=`expr $a - $b`
echo "a - b : $val"val=`expr $a \* $b`
echo "a * b : $val"val=`expr $b / $a`
echo "b / a : $val"val=`expr $b % $a`
echo "b % a : $val"if [ $a == $b ]
thenecho "a 等于 b"
fi
if [ $a != $b ]
thenecho "a 不等于 b"
fi
執行腳本,輸出結果如下所示:a + b : 30
a - b : -10
a * b : 200
b / a : 2
b % a : 0
a 不等于 b
  • 注意:
    • 乘號(*)前邊必須加反斜杠()才能實現乘法運算;
    • 在 MAC 中 shell 的 expr 語法是:$((表達式)),此處表達式中的 “*” 不需要轉義符號 “” 。

關系運算符

#!/bin/basha=10
b=20if [ $a -eq $b ]
thenecho "$a -eq $b : a 等于 b"
elseecho "$a -eq $b: a 不等于 b"
fi
if [ $a -ne $b ]
thenecho "$a -ne $b: a 不等于 b"
elseecho "$a -ne $b : a 等于 b"
fi
if [ $a -gt $b ]
thenecho "$a -gt $b: a 大于 b"
elseecho "$a -gt $b: a 不大于 b"
fi
if [ $a -lt $b ]
thenecho "$a -lt $b: a 小于 b"
elseecho "$a -lt $b: a 不小于 b"
fi
if [ $a -ge $b ]
thenecho "$a -ge $b: a 大于或等于 b"
elseecho "$a -ge $b: a 小于 b"
fi
if [ $a -le $b ]
thenecho "$a -le $b: a 小于或等于 b"
elseecho "$a -le $b: a 大于 b"
fi
執行腳本,輸出結果如下所示:10 -eq 20: a 不等于 b
10 -ne 20: a 不等于 b
10 -gt 20: a 不大于 b
10 -lt 20: a 小于 b
10 -ge 20: a 小于 b
10 -le 20: a 小于或等于 b

布爾運算符

#!/bin/basha=10
b=20if [ $a != $b ]
thenecho "$a != $b : a 不等于 b"
elseecho "$a == $b: a 等于 b"
fi
if [ $a -lt 100 -a $b -gt 15 ]
thenecho "$a 小于 100 且 $b 大于 15 : 返回 true"
elseecho "$a 小于 100 且 $b 大于 15 : 返回 false"
fi
if [ $a -lt 100 -o $b -gt 100 ]
thenecho "$a 小于 100 或 $b 大于 100 : 返回 true"
elseecho "$a 小于 100 或 $b 大于 100 : 返回 false"
fi
if [ $a -lt 5 -o $b -gt 100 ]
thenecho "$a 小于 5 或 $b 大于 100 : 返回 true"
elseecho "$a 小于 5 或 $b 大于 100 : 返回 false"
fi
執行腳本,輸出結果如下所示:10 != 20 : a 不等于 b
10 小于 100 且 20 大于 15 : 返回 true
10 小于 100 或 20 大于 100 : 返回 true
10 小于 5 或 20 大于 100 : 返回 false

邏輯運算符

#!/bin/basha=10
b=20if [[ $a -lt 100 && $b -gt 100 ]]
thenecho "返回 true"
elseecho "返回 false"
fiif [[ $a -lt 100 || $b -gt 100 ]]
thenecho "返回 true"
elseecho "返回 false"
fi
執行腳本,輸出結果如下所示:返回 false
返回 true

字符串運算符

#!/bin/basha="abc"
b="efg"if [ $a = $b ]
thenecho "$a = $b : a 等于 b"
elseecho "$a = $b: a 不等于 b"
fi
if [ $a != $b ]
thenecho "$a != $b : a 不等于 b"
elseecho "$a != $b: a 等于 b"
fi
if [ -z $a ]
thenecho "-z $a : 字符串長度為 0"
elseecho "-z $a : 字符串長度不為 0"
fi
if [ -n "$a" ]
thenecho "-n $a : 字符串長度不為 0"
elseecho "-n $a : 字符串長度為 0"
fi
if [ $a ]
thenecho "$a : 字符串不為空"
elseecho "$a : 字符串為空"
fi
執行腳本,輸出結果如下所示:abc = efg: a 不等于 b
abc != efg : a 不等于 b
-z abc : 字符串長度不為 0
-n abc : 字符串長度不為 0
abc : 字符串不為空

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/43689.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/43689.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/43689.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言 | Leetcode C語言題解之第221題最大正方形

題目&#xff1a; 題解&#xff1a; int maximalSquare(char** matrix, int matrixSize, int* matrixColSize){int dp[301][301]{0};int wid0;if(matrixSize0&&matrixColSize[0]0){return 0;}for(int i0;i<matrixSize;i){for(int j0;j<matrixColSize[0];j){if(m…

Docker進入MongoDB

先是命令行開啟docker鏡像&#xff0c;然后進入docker鏡像&#xff0c;這是兩步 進入之后&#xff0c;開頭會變成root&#xff0c;我的理解是進入了另一個linux系統了&#xff0c;直接執行相應的軟件 這里直接use databse就是進入了&#xff0c;據說MongoDB是慢啟動&#xff0c…

MMGPL: 多模態醫學數據分析與圖提示學習| 文獻速遞-基于深度學習的多模態數據分析與生存分析

Title 題目 MMGPL: Multimodal Medical Data Analysis with Graph Prompt Learning MMGPL: 多模態醫學數據分析與圖提示學習 01 文獻速遞介紹 神經學障礙&#xff0c;包括自閉癥譜系障礙&#xff08;ASD&#xff09;&#xff08;Lord等&#xff0c;2018年&#xff09;和阿…

開發個人Go-ChatGPT–6 OpenUI

開發個人Go-ChatGPT–6 OpenUI Open-webui Open WebUI 是一種可擴展、功能豐富且用戶友好的自托管 WebUI&#xff0c;旨在完全離線運行。它支持各種 LLM 運行器&#xff0c;包括 Ollama 和 OpenAI 兼容的 API。 功能 由于總所周知的原由&#xff0c;OpenAI 的接口需要密鑰才…

C#字符串操作:判斷一個字符串是否存在于另一個字符串按特定字符分割后的子字符串中的幾種方法

要判斷一個字符串是否存在于另一個字符串按特定字符分割后的子字符串中&#xff0c;可以使用以下幾種方法&#xff1a; 方法一&#xff1a;使用Split和Array.Exists 你可以使用 Split 方法將字符串分割成子字符串數組&#xff0c;然后使用 Exists方法檢查目標字符串是否在數組…

Elasticsearch詳細介紹

B站對應視頻&#xff1a; Elasticsearch01-01.為什么學習elasticsearch_嗶哩嗶哩_bilibili 大多數日常項目&#xff0c;搜索肯定是訪問頻率最高的頁面之一。目前搜索功能是基于數據庫的模糊搜索來實現的&#xff0c;存在很多問題。 首先&#xff0c;查詢效率較低。 由于數據…

Java面試題:三個線程交替打印ABC如何實現?

目錄 方法一&#xff1a;使用synchronized和wait/notify方法二&#xff1a;使用CompletableFuture實現 方法一&#xff1a;使用synchronized和wait/notify package com.demo;import java.util.concurrent.CompletableFuture;public class PrintABC {// 當前狀態private static…

數據結構 Java DS——鏈表部分經典題目 (1)

前言 筆者計劃在暑假啃完JavaDS,Mysql的內容當然也會繼續更 這次給讀者們分享的是鏈表的幾個比較典型的題目,關于如何手搓一個鏈表,筆者還在籌劃中, 畢竟鏈表的種類也有那么多,但是在下面的題目中,只有單向鏈表 題目一 : 反轉鏈表 206. 反轉鏈表 - 力扣&#xff08;LeetCode…

什么是 VueQuill(前端的富文本編輯器)?

什么是 VueQuill&#xff1f; 1. 簡介 VueQuill 是 Vue.js 的一個富文本編輯器插件&#xff0c;它基于 Quill 編輯器構建&#xff0c;提供了簡潔且功能強大的富文本編輯功能。Quill 是一個現代化的富文本編輯器&#xff0c;提供豐富的文本編輯能力&#xff0c;支持多種格式和…

paddlenlp cpu windows 下測試gpt

paddlenlp 安裝python3.11版本 conda create -n python311 python3.11 激活python conda activate python311 安裝paddlepaddle conda install paddlepaddle3.0.0b0 -c paddle pip install paddlenlp3.0.0b0 -U -i https://pypi.tuna.tsinghua.edu.cn/simple windows下…

RockYou2024 發布史上最大密碼憑證

參與 CTF 的每個人都至少使用過一次臭名昭著的rockyou.txt單詞表&#xff0c;主要是為了執行密碼破解活動。 該文件是一份包含1400 萬個唯一密碼的列表。 源自 2009 年的 RockYou 黑客攻擊&#xff0c;創造了計算機安全歷史。 多年來&#xff0c;“rockyou 系列”不斷發展。…

爬蟲怎么實現抓取的

1.4爬蟲工程師常用的庫通過圖1-3我們了解到&#xff0c;爬蟲程序的完整鏈條包括整理需求、分析目標、發出網絡請求、文本解析、數據入庫和數據出庫。其中與代碼緊密相關的有&#xff1a;發出網絡請求、文本解析、數據入庫和數據出庫&#xff0c;接下來我們將學習不同階段中爬蟲…

C++OCR API減輕人們文字錄入的負擔

曾幾何時&#xff0c;許多大企業會設立文字錄入專員的崗位。相信有不少人第一份實習工作就是錄入資料&#xff0c;文檔、發票、證件等形形色色的文件堆積如山&#xff0c;日積月累的敲擊鍵盤&#xff0c;一張一張的錄入電腦系統。這種工作是枯燥的&#xff0c;可以練就文字錄入…

實驗01 黑盒測試方法(等價類劃分、邊界值分析)

一 實驗目的&#xff1a; 1、理解黑盒測試的定義&#xff1b; 2、掌握等價類劃分法&#xff1b; 3、掌握邊界值分析法。 二 實驗環境 1、Windows操作系統計算機&#xff1b; 三 實驗準備 1、理解黑盒測試的定義&#xff1b; 2、等價類劃分法原則&#xff1b; 3、邊界值分…

Java反射與Fastjson的危險反序列化

什么是Java反射&#xff1f; 在前文中&#xff0c;我們有一行代碼 Computer macBookPro JSON.parseObject(preReceive,Computer.class); 這行代碼是什么意思呢&#xff1f;看起來好像就是我們聲明了一個名為 macBookPro 的 Computer 類&#xff0c;它由 fastjson 的 parseObje…

Java入門-Day7-面對對象基礎-構造器

&#xff08;1&#xff09;特點 創建對象時&#xff0c;對象會去調用構造器 &#xff08;2&#xff09;應用場景 創建對象時&#xff0c;同時完成對對象的成員變量&#xff08;屬性&#xff09;&#xff0c;的初始化 &#xff08;3&#xff09;注意事項 //Sutdent構造器 注…

Java 幼兒園(20240709)多來源列表映射多實現類

1、功能場景 對接多個外部廠商&#xff0c;比如多個銀行的賬單獲取&#xff0c;需要根據銀行信息執行對應的實現類。 2、功能代碼 &#xff08;1&#xff09;YAML配置來源列表 bank-source: bank_001, bank_002, bank_003 &#xff08;2&#xff09;外部來源枚舉 public …

《夢醒蝶飛:釋放Excel函數與公式的力量》10.2 COMPLEX函數

第二節 10.2 COMPLEX函數 10.2.1函數簡介 COMPLEX函數是Excel中的一個工程函數&#xff0c;用于將實部和虛部組合成一個復數。復數廣泛應用于工程、電氣、物理等領域&#xff0c;COMPLEX函數提供了方便的復數表示和計算方法。 10.2.2語法&#xff1a; COMPLEX(real_num, i_…

flex 填滿剩余空間

常見的flex屬性值&#xff1a; 1.flex:1,也就是flex-grow:1,也就是上面說的自動放大填充滿剩余空間&#xff0c;若有其他子盒子設置flex&#xff0c;則平分。 2.flex:0 0 auto,等同于flex:none,子元素的長度決定它的長度&#xff0c;當整體空間不足時&#xff0c;它也不會縮小&…

swift獲取app網絡和本地網絡權限

請求藍牙權限&#xff1a; //藍牙if #available(iOS 13.1, *) {let autostate CBManager.authorizationif(autostate .notDetermined){print("")self.manager CBCentralManager(delegate: nil, queue: DispatchQueue.main,options: [CBCentralManagerOptionShowPo…