1. 程式人生 > >Shell變數的初始值賦值

Shell變數的初始值賦值

        通常在shell中,在變數值為空的時候我們要為變數設定一個預設值,避免在指令碼執行的過程中報錯,這就是變數的初始值賦值。

通常比較簡潔的有以下兩種,都能對一個變數賦予一個初始值,

    ${var:=初始值}

    ${var:-初始值}

但是不同的是 ${var:-初始值} 只是臨時呼叫,變數var並不改變,仍然為空;

而 ${var:=初始值} 呼叫初始值後,變數var也賦予了一個值。

shell程式碼執行如下:

[[email protected] ~]# a=${b:-12}
[[email protected] ~]# echo $a
12
[
[email protected]
~]# echo $b
[[email protected] ~]# a=${b:=12}
[[email protected] ~]# echo $a
12
[[email protected] ~]# echo $b
12

相關推薦

(轉)Java變數初始null

原地址:http://www.cnblogs.com/znsongshu/p/6282672.html 在Java中,null值表示引用不指向任何物件。執行過程中系統發現使用了這樣一個引用時·可以立即停止進一步的訪問,不會給系統帶來任何危險。 1.如果是物件的field的

shell 變數的條件

${變數1:+- 變數2}; (1) 冒號後面是“-”的話,或者沒有(預設是“-”) 表示, 如果變數1的值為空, 就是使用變數2的 (2) 冒號後面是“+”的話, 表示變數不為空時, 使用變數2的值 這裡的變數2可以是常量, 或者$變數

Shell變數初始

        通常在shell中,在變數值為空的時候我們要為變數設定一個預設值,避免在指令碼執行的過程中報錯,這就是變數的初始值賦值。 通常比較簡潔的有以下兩種,都能對一個變數賦予一個初始值,     ${var:=初始值}     ${var:-初始值} 但是

linux shell將命令結果變數 shell assign command output to variable

1. 命令     1.1     反引號``    (也就是tab上面~鍵)            ~ a=`echo "hello world"

為什麼區域性變數必須手動?而全域性變數不用手動也可以初始化?

實在知乎上看的答案,感覺很好,就轉載一下,原文地址:首先 Java 語言就是這麼規定的。然後為什麼 Java 語言要這麼規定呢?有什麼內部機理嗎?可能的原因如下,當我們新建一個物件時,Java會在Hea

shell讀取一個檔案內容到變數並逐一

sys_info=$(cat /usr/local/sysconfig.txt) var=`echo   $sys_info   |   awk   -F ', '   '{print   $0} '

Java類中變數初始化/過程

public class Person {     public String name="Person";     int age=0;          {         System.out.println("初始化塊:"+name);         name =

shell 中將執行命令變數

pid=`ps -ef | grep "/usr/sbin/csrassd" | grep  -v grep | awk '{print $2}'`grep -v grep  忽略grep本身賦值注意用反引號`` 

Jquery EasyUI Combotree 初始

multiple pat spa align tip 點擊 ces === ucc Jquery EasyUI Combotree 初始化賦值 ================================ ?Copyright 蕃薯耀 2018年5月7日 https

R語言-迴圈產生變數名並,應用到 ggolot2 迴圈作圖

問題的起源來自,想要批量出數十張組合好的圖。 實現過程中,最大的問題是如何實現:迴圈產生變數名,並對其將ggplot的一長段作圖程式碼傳送給該變數名。   最終使用assign函式解決了   首先產生1000個字串格式的備用變數名: p <- c(paste0('p

三元表示式 result='gt' if 1>3 else 'lt' 如果條件為真,把if前面的變數,否則把else後面的變數

https://docs.python.org/3/tutorial/datastructures.html?highlight=list%20comprehension#list-comprehensions 以上是官方文件。5.1.3. List Comprehensio

JavaScript中 ES6變數的結構

變數的結構賦值使用者很多 1、交換變數的值 let x = 1; let y = 2; [x,y] = [y,x] 上面的程式碼交換變數x和變數y的值,這樣的寫法不僅簡潔,易讀,語義非常清晰 2、從函式返回多個值 函式只能返回一個值,如果要返回多個值,只能講他們放在陣列或者物件裡返回。瞭解 解構賦值 ,取值

go語言漸入佳境[3]-變數宣告與

變數 變數是記憶體當中一段空間的抽象描述。變數的型別明確了空間的大小以及空間如何解析。 Go中的變數型別 1 bool byte complex64 complex128 error float32 float64 int int8 int16 int32 int64

SHELL指令碼簡單的與遞增

Count=`expr $Count + 1`;#可以在各種shell執行,其他類C的寫法只能在指定的bash版本執行; 賦值不能帶$, 帶$相當於字串常量了;執行指令碼參考如下 #!/bin/sh Count=1; while [ 1 -lt 2 ] do Count=`expr $Count

【NOI OpenJudge】【1.2】程式設計基礎之變數定義、及轉換

01: 整型資料型別儲存空間大小 #include<cstdio> int main(){ int a; short b; printf("%d %d",sizeof(a),sizeof(b)); return 0; } 02: 浮點型資料型別儲存空間大小

nodejs中的變數解構

所謂的解構賦值,就是把 某個物件中的屬性,當作變數,給解放出來,這樣,今後就能夠當作變數直接使用了 可以使用 : 為解構出來的變數重新命名 const person = { name: 'zs', age: 22, gender:

Tensorflow: 動態的給變數tf.Variable【tf.assign】

Motivation 錯誤: tensorflow不能直接給Variable賦值,比如: embedding_var = tf.Variable(1) test_var = 10 embedding_var = test_var 或者: embedding_var = tf

變數解耦

本來一直用得好好的 let [x,y,z] = [1,2,3]; 直到看見了這玩意?? let obj = { h:[ 'hello',

重新認識memset函式及c++中陣列的初始

下面就好好重新認識一下這個函式,自己寫了測試的程式碼,memset到底怎麼用呢? 先貼測試程式碼: #include<iostream> #include<cstdio> #include<algorithm> #include<string>

ES6 變數宣告與傳遞、淺拷貝與深拷貝

ES6 變數宣告與賦值:值傳遞、淺拷貝與深拷貝詳解轉載於王下邀月熊_Chevalier的現代 JavaScript 開發:語法基礎與實踐技巧系列文章。 變數宣告與賦值 ES6 為我們引入了 let 與 const 兩種新的變數宣告關鍵字,同時也引入了塊作用域;本文