假設要將 ls
的結果儲存到變數中,則可用下面的語法:
# 將結果儲存到 $OUTPUT 中 OUTPUT=$( ls / ) echo $OUTPUT
如果要將 stderr 也儲存下來,則加上 redirect:
OUTPUT=$( ls /not/exists 2>&1 )
軟體開發、伺服器和生活瑣事
假設要將 ls
的結果儲存到變數中,則可用下面的語法:
# 將結果儲存到 $OUTPUT 中 OUTPUT=$( ls / ) echo $OUTPUT
如果要將 stderr 也儲存下來,則加上 redirect:
OUTPUT=$( ls /not/exists 2>&1 )
透過 timeout
設定指令最長可以跑多久。
timeout 3s sleep 1 echo "$?" 0 timeout 3s sleep 5 echo "$?" 124
之前看到的 shell script 說明,建立幾乎都是用 `function`:
function show-server-status() { }
被 IDE 糾正以後才知道有規範 (Google 的 style guide),像是不使用 function
宣告、命名原則:
# [a-zA-Z0-9_] only # https://stackoverflow.com/a/28115066 show_server_status() { }
看來該找時間整理一下 scripts 了
Alpine Linux 主要是透過 apk 來管理套件。
新增套件:
apk update && \
apk add build-base autoconf automake && \
cd /path/to/source && \
make install && \
rm -fr /var/cache/apk/* && \
rm -fr /tmp/*
離開前要記得 rm -fr /var/cache/apk/*
清除暫存檔。
也可以使用 apk add --no-cache
安裝套件,這樣就不需要考慮暫存檔:
apk add --no-cache build-base autoconf automake &&
....
在 console 中,bash 等待使用者輸入指令時,會顯示一串文字:
zeroplex@localhost $
這串文字就是 prompt,可以透過設定環境參數 PS1
來調整成自己喜歡的格式。例如:
export PS1="\u@\h: \w \$ "
zeroplex@localhost: /home/zeroplex $