shell 小記
變數大寫
1 | TODAY=`date +"%Y%m%d"` |
變數宣告 = 不能有空白
1 | A = 1234 # A: command not found |
字串截取
1 | STRING="123456789" |
Array 宣告
1 | ARR=(123 456 789) |
Array join(合併) 動作
1 | function join_by { local d=$1; shift; echo -n "$1"; shift; printf "%s" "${@/#/$d}"; } |
How can I join elements of an array in Bash? - Stack Overflow
if 條件判斷
1 | if [ ${#ERROR_ARR[@]} != 0 ] |
多個條件判斷
1 | if [ -e $FIND_FILE_320 ] && [ -e $FIND_FILE_192 ] && [ -e $FIND_FILE_30 ] && [ -e $FIND_FILE_ALBUM ] |
mysql 查詢寫回變數
FIND_ARRAY=(mysql -h xxx.xx.xx.xx -D xxxx -u xxx -p__password__ -se "SELECT xxx FROM xxx WHERE limit 100"
)
- shell处理mysql增、删、改、查 - 奔跑的Man - 博客园
- shell中读写mysql数据库 | 赖明星
- bash - How concatenate strings with a newline - Stack Overflow
1 | MYSQL_CMD="/usr/bin/mysql -u ga_user -pxxx -h xxx --database=xxx -s" |
function 宣告
1 | function join_by { local d=$1; shift; echo -n "$1"; shift; printf "%s" "${@/#/$d}"; } |
function 還傳段行字串
1 |
|
shell script 布林運算順序
有關 *
linux bash / shell 有關 * 星號的事情 | 程式狂想筆記
shell 比較字串外面需要包
if 常常遇到
[: ==: unary operator expected
那是因為 == 左邊沒有抓到值,或是值為 null
有兩種解決方法:
- if [ “$app-running” == “” ];
- if [[ $app-running == “” ]];
參考:Linux 的 shell script 中,遇到 unary operator expected 的解決方法
變數運算
最近使用 shell 做回圈做${index+1}
結果沒有印出來
爬文有找到幾個方法
declare -i來聲明整數變量
1
2
3
4x=1
x+=1
echo $x
# 2使用let命令
1 | i=1 |
- 使用(())
1 | i=1 |
- 使用expr命令
1 | i=1 |
- 使用$(())
1 | i=1 |
- 使用$[]
1 | i=1 |
我比較喜歡 $(()) 和 (())
參考來源: Shell中整数自增的几种方式_杰瑞的专栏-CSDN博客
複製檔案
shell function 回傳只能數字
一般我們看 shell script function return 回傳值只能是數字
沒法回傳字串,仔細想想也滿有道理的
因為正常程式執行結束會回傳 exit (int)
要確定程式是否有正確執行完成 正常執行完成會回傳0
那有沒有回傳字串方法
我看到是用 function 裡面做 echo
外面用`這個符號去包
滿有趣的寫法
Shell 實作守護進程方法
TODO: LINK
SHELL 大小寫
Bash lowercase and uppercase strings – Linux Hint
在 Shell 腳本中解析選項
相關連結
Shell——你只需要了解这么多 - 枣面包的博客 - CSDN博客
[Shell Script] Day27-提高可讀性之函式寫法(三) - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
Linux Shell函数返回值 - 阳光岛主 - CSDN博客