posix-shell-pro
あらゆる Unix システムで動作する移植可能な POSIX シェルスクリプトを作成する
シェルスクリプトは bash 固有の機能により、異なるシステムで失敗することがあります。このスキルは、厳密な POSIX 準拠を使用することで、スクリプトがどこでも動作することを保証します。
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
テストする
「posix-shell-pro」を使用しています。 ディレクトリをバックアップする検証付き POSIX スクリプトを作成する
期待される結果:
- #!/bin/sh
- set -eu
- Usage: backup.sh <source_dir> <dest_dir>
- if [ $# -lt 2 ]; then
- echo "Error: source and destination required" >&2
- exit 1
- fi
- src="$1"
- dest="$2"
- [ -d "$src" ] || { echo "Source not a directory" >&2; exit 1; }
- mkdir -p "$dest" || exit 1
- tar -cf - -C "$src" . | (cd "$dest" && tar -xf -)
- echo "Backup completed successfully"
「posix-shell-pro」を使用しています。 移植可能な方法でコマンドの存在をチェックする
期待される結果:
Use: command -v cmd >/dev/null 2>&1 && echo "found" || echo "missing"
セキュリティ監査
安全This is a prompt-only skill with no executable code. Static analysis scanned 0 files and detected 0 security issues with a risk score of 0/100. The skill provides instructional content on POSIX shell scripting best practices and actually promotes security patterns including input validation, safe variable quoting, cleanup traps, and warnings against eval on untrusted input. No network calls, command execution, or sensitive operations detected.
リスク要因
⚙️ 外部コマンド
品質スコア
作れるもの
クロスプラットフォームデプロイメントスクリプト
bash のインストールを必要とせず、Linux、BSD、macOS、および組み込みシステムで同一に動作するインストールおよびデプロイメントスクリプトを作成する。
コンテナおよび組み込みシステムツール
bash が利用できない Alpine Linux、BusyBox、およびリソース制約のある環境向けの軽量スクリプトを構築する。
レガシーシステム管理
bash がないか古いバージョンを使用する Solaris、AIX、レガシー Linux などの古い Unix システム向けスクリプトを維持および近代化する。
これらのプロンプトを試す
入力引数を検証し、シンプルなファイル操作を実行する POSIX 準拠のシェルスクリプトを作成する。set -eu による適切なエラーハンドリング、入力検証、およびクリーンアップトラップを含めること。
この bash スクリプトを厳密な POSIX sh に変換する。すべての配列、[[ 条件分岐、および bash 固有の機能を POSIX 準拠の相当品に置き換えること。行った各変更を説明すること。
ヘルプ用の -h、詳細表示用の -v、出力ファイル用の -o、および位置引数を受け付けるスクリプト向けの POSIX 準拠の引数解析を実装する。long オプションには getopts の代わりに while と case を使用すること。
Linux、BSD、macOS、BusyBox 間のプラットフォームの違いを処理する POSIX シェル関数ライブラリを作成する。OS 検出、コマンド可用性チェック、および共通ユーティリティの移植可能な実装を含めること。
ベストプラクティス
- ワードSplitting とグロービングを防止するために、変数展開は常に "$var" として引用する
- echo の動作はシェルによって異なるため、すべての出力に echo ではなく printf を使用する
- EXIT、INT、TERM シグナルで一時ファイルを削除するために、trap コマンドでクリーンアップを実装する
回避
- dash、ash、およびその他の POSIX シェルで失敗する [[ 条件分岐または bash 配列を使用する
- 異なるシステム間で動作が一貫しない echo -e または echo -n を使用する
- パイプおよびドット演算子の代わりにプロセス置換 <() または source コマンドを使用する