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