このガイドは、cmd
コマンドを使用して新しいコマンドやスクリプトを追加する方法を説明する。
zsh
がインストールされ、デフォルトのシェルとして設定されていることを確認する。cmd
コマンドとその環境が正しく設定されていることを確認する。
~/Documents/02_Code/sh-scripts/
├── cmd
│ ├── cmd
│ ├── scripts.csv
│ ├── example.sh
│ └── ...
└── zsh
└── _cmd
新しいコマンドを追加するには、example
ディレクトリに新しいシェルスクリプトを作成する。
例: example.sh
# ~/Documents/02_Code/sh-scripts/example/example.sh
#!/bin/zsh
echo "これはexampleのスクリプトです。"
新しいスクリプトに実行権限があることを確認する。
chmod +x ~/Documents/02_Code/sh-scripts/example/example.sh
scripts.csv
ファイルに新しいスクリプトのエントリと簡単な説明を追加する。
script_name,description
example,これはexampleのスクリプトです
新しいコマンドの補完スクリプトを作成する。
# ~/Documents/02_Code/sh-scripts/zsh/_example
#compdef example
_example() {
local -a scripts
scripts=(${(f)"$(ls ~/Documents/02_Code/sh-scripts/example/*.sh 2>/dev/null)"})
scripts=(${scripts:t:r}) # スクリプト名のみにする
_describe -t scripts 'script' scripts
}
compdef _example example
.zshrc
ファイルに以下の設定を追加する。
# ~/.zshrc
export PATH=$PATH:~/Documents/02_Code/sh-scripts/example
fpath=(~/Documents/02_Code/sh-scripts/zsh $fpath)
autoload -Uz compinit && compinit
設定ファイルを保存し、zshを再読み込みする。
source ~/.zshrc
example -h
を実行して、新しいコマンドがリストに表示されることを確認する。
example -h
新しいコマンドを実行して、正しく動作するか確認する。
example example
example
ディレクトリに新しいスクリプトファイルを作成する。
例: example-new-feature.sh
# ~/Documents/02_Code/sh-scripts/example/example-new-feature.sh
#!/bin/zsh
echo "これはexampleコマンドの新機能スクリプトです。"
新しいスクリプトに実行権限があることを確認する。
chmod +x ~/Documents/02_Code/sh-scripts/example/example-new-feature.sh
scripts.csv
ファイルに新しいスクリプトのエントリと簡単な説明を追加する。
script_name,description
example-new-feature,これはexampleコマンドの新機能スクリプトです
example -h
を実行して、新しいスクリプトがリストに表示されることを確認する。
example -h
新しいスクリプトを実行して、正しく動作するか確認する。
example example-new-feature
以下のスクリプトを ~/Documents/02_Code/sh-scripts/
ディレクトリに保存する。
# ~/Documents/02_Code/sh-scripts/add-script.sh
#!/bin/zsh
# 引数の数が正しいかチェックする
if [[ $# -lt 2 ]]; then
echo "Usage: $0 <script_name> <description> [<command_name>]"
exit 1
fi
SCRIPT_NAME=$1
DESCRIPTION=$2
COMMAND_NAME=${3:-cmd}
SCRIPT_PATH=~/Documents/02_Code/sh-scripts/$COMMAND_NAME/$SCRIPT_NAME.sh
CSV_PATH=~/Documents/02_Code/sh-scripts/$COMMAND_NAME/scripts.csv
# 新しいスクリプトファイルを作成する
echo "#!/bin/zsh
echo "$DESCRIPTION"" > $SCRIPT_PATH
# 実行権限を追加する
chmod +x $SCRIPT_PATH
# CSVファイルを更新する
if [[ -f $CSV_PATH ]]; then
echo "$SCRIPT_NAME,$DESCRIPTION" >> $CSV_PATH
else
echo "script_name,description" > $CSV_PATH
echo "$SCRIPT_NAME,$DESCRIPTION" >> $CSV_PATH
fi
echo "Script '$SCRIPT_NAME.sh' created in '$COMMAND_NAME' directory and CSV updated."
スクリプトに実行権限を付与する。
chmod +x ~/Documents/02_Code/sh-scripts/add-script.sh
新しいスクリプトを追加するには、以下のコマンドを実行する。
~/Documents/02_Code/sh-scripts/add-script.sh <script_name> <description> [<command_name>]
script_name
: 新しいスクリプトの名前description
: スクリプトの説明command_name
(オプション): コマンド名(指定しない場合はデフォルトでcmd
)
./add-script.sh example-new-feature "これはexampleの新機能スクリプトです"
./add-script.sh example-new-feature "これはexampleの新機能スクリプトです" example
スクリプトを実行した後、以下のコマンドで新しいスクリプトが作成され、CSVファイルが更新されていることを確認する。
cmd -h
cmd example-new-feature
# 例: exampleコマンドで追加した場合
example -h
example example-new-feature
cmd
スクリプトと_cmd
補完スクリプトが.zshrc
ファイルに正しく設定されていることを確認する。
# ~/.zshrc
export PATH=$PATH:~/Documents/02_Code/sh-scripts/cmd
fpath=(~/Documents/02_Code/sh-scripts/zsh $fpath)
autoload -Uz compinit && compinit
- 変更を加えた後に
.zshrc
を再読み込みする。
source ~/.zshrc
これらの手順に従うことで、カスタムコマンドスクリプトマネージャーに新しいコマンドやスクリプトを簡単に追加できる。