linux shell 筆記

echo

不加引號和使用單引號都是原樣輸出,不加引號時分號被認爲是命令結束,
單引號中無法輸出單引號

echo -n                   #不換行輸出
echo -e   "1\t2"     #使用轉義字符時-e參數
echo -e  "\e[31m  hello"    #使用紅色文字顯示hello,\e[0m重置回默認顏色,30開始文字顏色,40開始背景顏色
stty -echo    #輸入不顯示在終端
stty  echo     #輸入顯示在終端

變量

    $(  )                    #命令,或者反引號(ESC下)
    $[  ]                    #算術運算,或let
    ${  }                    #變量
    ${#  }       #獲得變量長度
    $?           #命令執行狀態,0成功,其他錯誤
    $0                      #返回當前shell
    $1 $2...             #第一個參數,第二個參數...

重定向

>      #覆蓋
>>    #追加
1>    #標準輸出重定向,1可省略
2>    #錯誤重定向
2>&1   #標準輸出與錯誤輸出均重定向到同一文件
>/dev/null   #不顯示輸出信息
date | tee a.txt | grep ..    #執行date命令的輸出保存在a.txt並作爲grep的輸入,tee只保存標準輸出1,並且以覆蓋的方式,追加用-a參數

數組

a=(1  2  3  4  5)           #定義整型數組,每個元素空格隔開
b[0]="hi"  
b[1]="ha ha ha"           #定義字符串數組
 echo  ${a[0]}                #輸出第0個元素
 echo  ${a[*]}                 #顯示數組中的所有值,*也可以用@代替
 echo ${#a[*]}               #顯示數組長度`

時間

date +%a        #星期
date +%y        #年
date +%b       #月
date +%d       #日
date +%H      #時
date +%M      #分
date +%S       #秒
date +%s        #距標準時間的秒數 

判斷

if   [  a  -lt  b]                      #lt小於,eq等於,gt大於,le小於等於,ge大於等於
     then
             echo a<b
    else  
             echo  a>b
fi

從網頁獲取壁紙

#!/bin/bash
###輸入起始頁和末頁,空格隔開
read start end
for((i=$start;i<=$end;i++))
do
curl http://wallpaperswide.com/page/${i} |grep prevframe_show | cut -d"/" -f5 |cut -d. -f1 |while read wall_url
do
sudo axel -c -a -o /usr/share/backgrounds http://wallpaperswide.com/download/$wall_url-wallpaper-1366x768.jpg
done
done

###獲取bing當天壁紙
url=$(curl -s "https://cn.bing.com/HPImageArchive.aspx?format=js&idx=1&n=1&nc=1498657985239&pid=hp&video=1" |cut -d'"' -f18)
sudo axel -a -c -o /usr/share/backgrounds https://cn.bing.com$url

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章