06—shell常用知識點2
1、如何連線兩個字串 ?
V1="Hello"
V2="World"
V3=${V1}${V2}
echo $V3
輸出:
HelloWorld
2、如何進行兩個整數相加 ?
V1=2
V2=2
let V3=$V1+$V2
echo $V3
輸出:
4
3、命令 “export” 有什麼用 ?
使變數在子 shell 中可用。
4、' 和 " 引號有什麼區別
' - 當我們不希望把變數轉換為值的時候使用它。
" - 會計算所有變數的值並用值代替。
5、如何在指令碼檔案中重定向標準輸出和標準錯誤流到 log.txt 檔案 ?
在指令碼檔案中新增 "exec >log.txt 2>&1" 命令。
6、如何只用 echo 命令獲取字串變數的一部分 ?
echo ${variable:x:y}
x - 起始位置
y - 長度
7、如果給定字串 variable="User:123:321:/home/dir",如何只用 echo 命令獲取 home_dir ?
echo ${variable#*:*:*:}
或
echo ${variable##*:}
8、如何使用 awk 列出 UID 小於 100 的使用者 ?
awk -F: '$3<100' /etc/passwd //—
9、如何在 bash shell 中更改標準的域分隔符為 ":" ?
IFS=":" //IFS預設分割符是空格
10、如何獲取變數長度 ?
${#variable}
11、如何列印變數的最後 5 個字元 ?
echo ${variable: -5}
12、${variable:-10} 和 ${variable: -10} 有什麼區別?
${variable:-10} - 如果之前沒有給 variable 賦值則輸出 10;如果有賦值則輸出該變數
${variable: -10} - 輸出 variable 的最後 10 個字元
13、寫出輸出數字 0 到 100 中 3 的倍數(0 3 6 9 …)的命令 ?
for i in {0..100..3}; do echo $i; done
14、[ $a == $b ] 和 [ $a -eq $b ] 有什麼區別
[ $a == $b ] - 用於字串比較
[ $a -eq $b ] - 用於數字比較