このガイドは、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.shscripts.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 ~/.zshrcexample -hを実行して、新しいコマンドがリストに表示されることを確認する。
example -h新しいコマンドを実行して、正しく動作するか確認する。
example exampleexampleディレクトリに新しいスクリプトファイルを作成する。
例: 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.shscripts.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-featurecmdスクリプトと_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これらの手順に従うことで、カスタムコマンドスクリプトマネージャーに新しいコマンドやスクリプトを簡単に追加できる。