let
操作
#!/bin/bash
no1=4;
no2=5;
let result=no1+no2
echo $result
let no1++ / ++no1;
let no1-- / --no1;
//let no+=6
let no-=6
操作#!/bin/bash
no1=4;
no2=5;
result=$[no1+no2]
echo $result
result=$(( no1 + 50 ))
使用expr
操作result=`expr 3 + 4`
result=$(expr $no1 + 5)
注意,以上這些方法只能用於整數運算,而不支援浮點數;
使用bc
echo "4 * 0.56" | bc
2.24
//no=54;
result=`echo "$no * 1.5" | bc`
echo $result
81.0
echo "scale=2;3/8" | bc
0.37
#!/bin/bash
#十進位制轉二進展然後二進行轉十進位制;
no=100
echo "obase=2;$no" | bc
1100100
no=1100100
echo "obase=10;ibase=2;$no" | bc
100
echo "sqrt(100)" | bc #square root
echo "10^10" | bc #square
定義一般陣列#這些值將會儲存在以0為起始索引的連續位置上
array_var=(1 2 3 4 5 6)
#將陣列定義成一組「索引-值」:
array_var[0]="test1"
array_var[1]="test2"
array_var[2]="test3"
定義關聯陣列//宣告
declare -a ass_array
//新增
ass_array=([index1]=val1 [index2]=val2)
ass_array[index1]=val1
ass_array[index2]=val2
列印陣列echo $
//index=5
echo $
//列印所有值
echo $
echo $
echo $
echo $
echo $
echo $
常用作用cat file1 file2 file3 ...
//使用管道操作符: output_from_some commands | cat
echo 'text through stdin' | cat - file1 file2..
//保留空白輸出輸出
cat -n file
//過濾空白行輸出
cat -b file
檔案描述符
stdin: 0,stdout: 1,stderr: 2`
處理輸出文字//將輸出文字重定向或儲存到乙個檔案中
echo "this is a sample text 1" > temp.txt
//將文字追加到目標檔案中
echo "this is sample text 2" >> temp.txt
輸出結果重定向ls 1> out.txt
ls + 2> out.txt
//將stderr轉換成stdout,使得stderr和stdout都被重定向到同乙個檔案中:
cmd 2>&1 output.txt
cmd &> output.txt
過濾輸出的stderr
資訊;
使用tee
:
cat a* | tee out.txt | cat -n
cat a* | tee -a out.txt | cat -n
使用stdin
作為命令引數//只需要將-作為命令的檔名引數即可
cmd1 | cmd2 | cmd -
shell bash 比較運算子
運算子 描述 示例 檔案比較運算子 e filename 如果 filename 存在,則為真 e var log syslog d filename 如果 filename 為目錄,則為真 d tmp mydir f filename 如果 filename 為常規檔案,則為真 f usr bin...
linux的shell(bash)指令碼學習
參考鏈結 shell 是乙個用c語言編寫的程式,它是使用者使用linux的橋梁。shell既是一種命令語言,又是一種程式語言。shell 是指一種應用程式,這個應用程式提供了乙個介面,使用者通過這個介面訪問作業系統核心的服務。shell 指令碼 shell script 是一種為shell編寫的指令...
Linux學習之八(shell bash)
一 umask 遮罩碼 檔案預設不能具有執行許可權,如果算得的結果中有執行許可權,則將其許可權加1 檔案 666 023 643 目錄 777 022 754 二 使用者登入的角度來說,shell的型別 登入式shell 正常通常某終端登入 su username su l username 非登入...