假設要將 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 了
在 console 中,bash 等待使用者輸入指令時,會顯示一串文字:
zeroplex@localhost $
這串文字就是 prompt,可以透過設定環境參數 PS1
來調整成自己喜歡的格式。例如:
export PS1="\u@\h: \w \$ "
zeroplex@localhost: /home/zeroplex $
如果參數太多,導致 xargs: argument line too long
時,可以使用 -n
參數來限制 argument 數量。
限制每次執行指令時,最多 100 個 arguments:
cat thousand-files | xargs -n 100 rm -fr