shell 踩坑筆記

2021-09-10 07:49:03 字數 916 閱讀 1030

if條件判斷:

a="123"

if [ $a = "123" ];then

statement

elif [ $a = "234"];then

statement

fi

錯誤點在於,判斷語句中 = 號兩端要用空格隔開

另外注意,[ ]中左右兩端也要用空格隔開

迴圈書寫

a=("abc" "123" "def") #定義陣列

for x in ; do

statement

done

錯誤點在於忘記用{}包裹變數a,另外要記得用a[@]方式表示迴圈陣列中的所有值

bash中的有些命令不能直接在shell中執行

如ls、pwd等,需要通過如下方式執行

# 用``包裹命令,注意不是單引號

for date in `ls ./$` ; do

cd `pwd`/$/$/select #cd mv tar等命令是可以直接使用的

echo `ls -l *.jpg |wc -l` #統計當前目錄下的數量

sed用法

對檔案內容進行編輯替換等操作

sed -i 'n(檔案中的第幾行)s/(也可以是其他特殊符號)原字串/新字串/' /home/1.txt(待編輯的檔案path)

sed -i "5s%^.*$%dataset_name: /mnt/white_$%" filter_config.yaml

#其中^.*$是一正規表示式,匹配任何字串

錯誤點在於最開始不知道/原字串/新字串/只能用///這種方式,造成對路徑形式的字串替換錯誤,後來發現也可以通過%方式進行替換。

shell迴圈ubuntu踩坑

因為前段時間在win10 下面安裝了linux子系統,使用的是ubuntu18.04 然後就開始學習shell了,寫了乙個shell 的for迴圈,如下 bin bash for i 1 i 10 i do echo i done 就是這麼簡單的 迴圈輸出變數,但是在ubuntu下面,怎麼執行,都報...

Celery 踩坑筆記

常用的類from kombu import exchange,queue。celery task 中不允許呼叫別的 task 後阻塞式的 get 等待結果。版本 3.2 後會對此行為丟擲異常。根據官方文件,應該使用類似管道形式的呼叫來解決。但是我想根據第乙個 task 的結果指定 route key...

後台踩坑筆記

code alau w6b yojdvc viuunk2f8te 7ztp2 tk url phone codevalue 原因 code中含有 等等符號 後台解析url時,會把code中的 識別為路徑中的分隔符,前後分別識別為key value 後台解析失敗,介面請求不成功 解決 encodeur...