ホスト名に基づいてパスを見つけるスクリプトを実行しようとしています。たとえば、ホスト名が返されたらcomputer1
実行したいと思いますpath/to/Computer1.py
(ここで path/to は常に同じパスです)。
パス部分は変数を使用して保存し、呼び出して接続できると思います。これで文字列をタイトルケースに変換しようとしていますが、これはうまくいくようです。
echo "computer1.py" | awk '{printf("%s%s\n",toupper(substr($0,1,1)),substr($0,2))}'
hostname
私はbashに初めてアクセスし、現在これらのコンポーネント(スクリプト名に基づくスクリプトパス)を接続して実行する方法について心配しています。
答え1
Bashバージョン4には大文字と小文字の変更演算子が組み込まれており^
、,
最新バージョンのbashシェルを使用している場合は、単純な文字列操作にawkなどの外部プログラムを使用する必要はありません。特に、
name=$(hostname)
そして
path="path/to/"
それから
"${path}${name^}"
文字列は最初の文字をname
大文字にする必要があります。Parameter Expansion
bashのマニュアルページのセクションを参照してくださいman bash
。