Skip to content

Zeroplex 生活隨筆

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

標籤: Bash

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
Share this…
  • Facebook
  • Twitter
  • Telegram
  • Line
  • WordPress
Tags:Bash, Linux

在 Linux terminal 中使用英文

Posted on 2022 年 5 月 4 日2022 年 5 月 4 日 By 日落 在〈在 Linux terminal 中使用英文〉中尚無留言

現在 Linux 終端機 (teminal) 中的各種說明、操作提示都很人性的翻譯成各國語言,用起來真的很親切 …. 直到你遇到錯誤要上網查資料 XD

將以下幾個參數複製到 .bashrc 檔中,終端機就會全部以英文為主,這樣遇到錯誤訊息要上網查才不會查不到資料:

# put it in .bashrc
export LANG=C
export LANGUANGE="en_US"
Share this…
  • Facebook
  • Twitter
  • Telegram
  • Line
  • WordPress
Tags:Bash, Linux

Generate Random String in Bash (Linux)

Posted on 2022 年 3 月 13 日2022 年 3 月 13 日 By 日落 在〈Generate Random String in Bash (Linux)〉中尚無留言

在 StackExchange 看到不錯的解法:

tr -dc A-Za-z0-9 </dev/urandom | head -c 16

head 那邊的 16 為字串長度,假如只需要 4 個字的話就改成 4 即可。

另外,上面產生出來的英文字母有分大小寫,可以再搭配 tr 把文字全部轉小寫、或轉大寫:

echo "Hello World" | tr '[:upper:]' '[:lower:]'
Share this…
  • Facebook
  • Twitter
  • Telegram
  • Line
  • WordPress
Tags:Bash, Linux

Linux Console 中 cd 的指令並非 GNU 工具

Posted on 2021 年 12 月 1 日2021 年 12 月 1 日 By 日落 在〈Linux Console 中 cd 的指令並非 GNU 工具〉中尚無留言

有使用 Linux 作為伺服器的人應該都算熟悉終端機操作界面。

常用的檔案操作工具有 ls、cat、mv、cp 等等,這些都是 GNU project 提供的開源工具,可以自行下載原始碼並自行編譯、部屬在需要用到的平台上使用。但 cd 這個切換目錄的指令呢?

用 which、whereis 都查不到 cd 這個檔案到底儲存在哪個目錄下,因為真的沒這檔案。

cd 並不在 /bin 或 /usr/local/bin 目錄下,其實是 shell (sh, tcsh, bash 等) 內建的指令。所以即使在不同的系統上,只要有正確安裝 shell,就有 cd 這個指令來切換 working directory。

備註:怎麼發現的?就不小心 sudo rm -fr / 而已 … _Drz

Share this…
  • Facebook
  • Twitter
  • Telegram
  • Line
  • WordPress
Tags:Bash, Linux

駭客軍團之 shebang

Posted on 2021 年 9 月 27 日2021 年 9 月 27 日 By 日落 在〈駭客軍團之 shebang〉中尚無留言

在駭客軍團的第 5 集約 39 分附近,因為失去「黑暗軍團」的幫忙,駭客想要馬上執行惡意程式來破壞「鋼山」公司的主機,如果有注意到的話,終端機的指令大致如下:

$ cd /opt/2/task/22/fdinfo/fsociety/hscripts
$ ./fuxsocy

影片中直接使用 ./ 來執行特定指令或 script,但並沒有特別指定要用 shell 或是要用 python?那這樣的話,電腦怎麼知道是執行檔可以直接載入記憶體中執行?或是否需要其他直譯器來執行?

Linux 和 Unix 在設計時有想到這個問題,目前大多數的解決方法,就是在檔案的第一行最前面加上 #! 符號作為標示,在標示後面跟著直譯器的絕對路徑,這樣就可以知道開發者需要使用哪個直譯器來跑這個 script。這個作法後來被稱為「shebang」。

More “駭客軍團之 shebang” »

Share this…
  • Facebook
  • Twitter
  • Telegram
  • Line
  • WordPress
Tags:Bash, Linux

文章導覽

1 2 ... 4 下一頁

其他

關於我  (About me)

小額贊助

  文章 RSS Feed

  留言 RSS Feed

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


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

Go to mobile version