Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

Shell Script 判斷指令執行是否成功

Posted on 2023 年 1 月 22 日2023 年 1 月 22 日 By 日落 在〈Shell Script 判斷指令執行是否成功〉中尚無留言

透過 bash 中的 $? 來讀取前一個指令的狀態 (exit code)。一般來說,正常執行的 exit code 會是 0,若有發生錯誤或其他狀況,exit code 則會是 1 – 255 之間。

正常結束的 exit code:

ls /var
echo $?
0

若發生錯誤,則有其他 exit code:

ls /not-exsit
echo $?
2

在 shell script 中用 if 判斷程式是否要繼續執行:

curl -s https://test.com/install.sh -o install.sh

if [ @? -ne 0 ]; then
    echo "download failed"
    exit
fi

# run install
Tags:Bash, Linux

MySQL 上的資料型態轉換

Posted on 2023 年 1 月 20 日2023 年 1 月 20 日 By 日落 在〈MySQL 上的資料型態轉換〉中尚無留言

MySQL 上可用 cast() 做資料型態轉換,不過 data type 的 reserve word 和一般 CREATE TABLE 時用的不太一樣。詳細參考 MySQL cast funtion 的說明。

轉數字:

  • SIGNED、UNSIGNED:相當於 `BIGINT`
  • FLOAT(N)、DOUBLE、REAL:浮點數,FLOAT 要指定精確度,用 DOUBLE 比較快
  • DECIMAL[M, D]:要指定資料長度

轉字串:

  • CHAR[N]、NCHAR[N]:要指定字串長度
  • TEXT、LONGTEXT:不支援,只能使用前一項的 reserve word

若資料不是要在 DBMS runtime 處理,而是要輸出以後由其他程式語言處理的話,是可以考慮直接轉 JSON 型態。但若要在 DBMS 裡面使用的話,還是乖乖轉支援的資料型態比較不會出錯。

Tags:MySQL

URL Normalize (URL 正規化)

Posted on 2023 年 1 月 18 日2023 年 1 月 18 日 By 日落 在〈URL Normalize (URL 正規化)〉中尚無留言

URL 呈現的形式很多樣,例如以下幾個 URL 事實上都會開啟相同的頁面:

  • https://zeroplex.tw
  • https://zeroplex.tw/
  • https://zeroplex.tw:443/
  • https://zeroplex.tw/#note

另外網址中的參數順序是沒有差異的。例如以下二個 URL 等義:

  • https://test.com?query=key&lang=en
  • https://test.com?lang=en&query=key

如果要寫 crawler 的話,最好先做 URL normalize 以後再來決定是否要處理,不然會花不少時間在重複的資料上。

另外有觀察到一些蠻討人厭的追蹤標籤,不影響結果,單純追蹤瀏覽行為。像是:

  • ?fbclid=:從 Facebook 開啟連結後,參數會自動加入
  • utm_source、utm_campaign 等:Google Analytics 用來記錄流量來源的一些參數

Tags:Web

調整 cargo build 的 job 數量

Posted on 2023 年 1 月 16 日2023 年 1 月 16 日 By 日落 在〈調整 cargo build 的 job 數量〉中尚無留言

cargo build 在沒有設定檔的情況下,預設使用所有的 CPU core 來進行編譯 (所以之前去邊 ChromiumOS 的時候被搞的灰頭土臉 …. _Drz)

若要像 GNU make 一樣,預設只跑 single job 的話,則需在家目錄金增設定檔 .cargo/config.toml:

[build]
jobs =

參考:rust – How do I set the number of default parallel jobs [-j 4] for Cargo? – Stack Overflow

Tags:Rust

在 Linux 快速刪除目錄

Posted on 2023 年 1 月 15 日2023 年 1 月 15 日 By 日落 在〈在 Linux 快速刪除目錄〉中尚無留言

若要刪除 target/ 目錄,Linux 下的指令就是:

rm -r target/

其中要注意幾件事:

  • 不要使用參數 -v:stdout 很花時間,不使用 -v 速度會快很多
  • 不要使用萬用字元:如果使用 target/* 則 shell 會將萬用字完展開成 target/file-1、target/file-2 … 等等,速度就會變慢

使用 find 來刪除目錄:

find /path/to/target -delete

另一個是使用 rsync 同步一個空的目錄,這比前面幾個方法快很多:

mkdir empty/
rsync -a --delete empty/ target/

參考資料:A faster way to delete millions of files in a directory

Tags:Linux

文章分頁

上一頁 1 ... 22 23 24 ... 318 下一頁

其他

關於我  (About me)

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.