Last Updated on 2021-07-24 by Clay
在 Linux 中我們可以透過編寫 Shell Script 完成各式各樣的功能程式,來讓我們擁有更好的使用體驗。今天我想要紀錄的,是在 Bash 中該如何使用 Dictionary、也就是所謂的雜湊表(hash table)。
hash table 有多好用自然不用多提,實際上使用方法也非常單純。以下是一段簡單的 Sample Code:
#!/bin/bash declare -A dict dict=( ['a']=1 ['b']=2 ['c']=3 ) for item in "${!dict[@]}" do echo "$item => ${dict[$item]}" done
Output:
a => 1
b => 2
c => 3
發生錯誤:Syntax error: "(" unexpected
如果在執行時發生以下錯誤:
declare: not found
或者是
Syntax error: "(" unexpected
那麼,很有可能你的 sh 軟連結並不是指向 bash,也就是說,你可能並不是使用 bash 來執行你的程式,你可以使用以下指令查看:
ls -l /bin/sh
如果你顯示的連結不是 bash,比如說是 dash:
lrwxrwxrwx 1 root root 4 一 1 2020 /bin/sh -> dash
那麼就代表 sh 指令並不是使用 bash,可以考慮直接使用 "bash" 來執行程式,或者是將預設的 sh 切換成 bash:
sudo dpkg-reconfigure dash
然後會看到以下這樣的畫面:
這裡選擇 No,sh 就會軟連結到 bash 了。
References
- https://stackoverflow.com/questions/1494178/how-to-define-hash-tables-in-bash
- https://askubuntu.com/questions/976485/what-is-the-point-of-sh-being-linked-to-dash