3つの命令を組み合わせて実行する方法

3つの命令を組み合わせて実行する方法

ホスト名に基づいてパスを見つけるスクリプトを実行しようとしています。たとえば、ホスト名が返されたら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 Expansionbashのマニュアルページのセクションを参照してくださいman bash

関連情報