Shell 變數

weixin_34321977發表於2017-05-03

shell變數

  • 給變數賦值時,等號兩邊一定不能留空格,若變數中本身就包含了空格,則整個字串都要用雙引號括起來
  • echo -e "\n" 使用轉義字元
  • readonly 表示只讀變數
  • unset 刪除變數,unset不能刪除readonly變數
#!/bin/bash

name="shuai" # 不能有空格
echo $name
echo ${name} # 加花括號是為了幫助直譯器識別變數的邊界,可以不要

echo "" # 當做換行使用

echo "轉義字元"
echo -e "\n" # -e表示列印轉義字元
echo "\n"
echo ""

echo "只讀變數"
readonly age=20 # 只讀變數
echo $age

echo "刪除變數"
unset name # 刪除變數,unset不能刪除readonly變數
echo $name

shell字串

雙引號

  • 雙引號可以有變數
  • 雙引號可以出現轉義字元
#!/bin/bash

name="shuai"

str="我的名字是${name}\n"

echo -e $str # \n還是需要-e解析

輸出

ShuaideMacBook-Pro:Desktop shuai$ ./a.sh
我的名字是shuai

ShuaideMacBook-Pro:Desktop shuai$ 

字串拼接

  • 變數直接排列
#!/bin/bash

name="shuai"
para="hello"
str=$para,$name # 拼接字串,','後面不能有空格
echo $str

輸出

ShuaideMacBook-Pro:Desktop shuai$ ./a.sh
hello,shuai

字串長度

#!/bin/bash

name="shuai"
echo ${#name} # 變數長度

輸出

ShuaideMacBook-Pro:Desktop shuai$ ./a.sh
5

子字串

#!/bin/bash

str="I am a good boy"
echo ${str:1:3} # 跳過空格
echo ${str:0:3}

輸出

ShuaideMacBook-Pro:Desktop shuai$ ./a.sh
am // 無視空格,後移
I a

shell陣列

  • 元素之間以 空格 分開
  • @ or * 輸出所有元素
#!/bin/bash

array=("apple" "banana" "orange") # 陣列元素之間以空格分開,不是","
echo ${array[1]} # 輸出第2個elem
echo ${array[@]} # 輸出所有元素,@和*都可以
echo ${array[*]}
echo ${#array[@]} # 陣列長度
echo ${#array[*]}
echo ${#array[1]} # 第2個elem(banana)的長度

輸出

ShuaideMacBook-Pro:Desktop shuai$ ./a.sh
banana
apple banana orange
apple banana orange
3
3
6

相關文章