システムについてより早く学ぶために.bashrc機能を作成しています。私は行きたい場所を説明するためにケースの説明を使用します。
function da() {
case "$1" in
home) cd ~
;;
eolas) cd /home/eolas/
;;
esac
}
JSONファイルからケースをインポートしたいと思います。たとえば、次のようになります。
{
"cases": {
"home": "~",
"eolas": "/home/eolas/",
"jdan": "/home/jdan/",
"kl": "/.kl/"
}
}
私はこれを行う方法を探していましたが、今まで見つかりませんでした。これはbashで可能ですか?それではどうでしょうか?
ベストアンサー1
JSONファイルがある場合は、自動的に使用を検討する必要があります。ジャックそれを分析するために。
ファイルを連想配列として読み取る必要があります。
declare -A __dirmap
while IFS=$'\t' read -r name dir; do
[[ $dir == "~" ]] && __dirmap[$name]=$HOME || __dirmap[$name]=$dir
done < <(
jq -r '.cases | to_entries[] | [.key, .value] | @tsv' file.json
)
その後、関数は次のようになります。
function da() {
if [[ -v __dirmap[$1] ]]; then
cd "${__dirmap[$1]}"
else
echo "No mapping for $1" >&2
fi
}