パスとコマンド置換の操作
このステップでは、コマンド置換を使って echo コマンドで他のコマンドの出力を表示する方法を学びます。
Echo でのコマンド置換
コマンド置換を使うと、コマンドをその出力に置き換えることができます。これは $(command) という構文を使って行います。シェルがこの構造を検出すると、括弧内のコマンドを実行し、$(command) 全体をそのコマンドの出力に置き換えます。
コマンド置換を使って現在の作業ディレクトリを表示してみましょう。
echo "Current directory: $(pwd)"
このコマンドを実行すると、以下のような出力が表示されるはずです。
Current directory: /home/labex/project
この例では、$(pwd) が pwd コマンドの出力(現在の作業ディレクトリ)に置き換えられています。
出力をファイルに保存する
echo コマンドの出力を画面に表示する代わりに、ファイルにリダイレクトすることもできます。これはリダイレクト演算子 > を使って行います。
プロジェクトディレクトリに path_info.txt という名前のファイルを作成し、現在の場所に関する情報を含めてみましょう。
cd ~/project
echo "Current path: $(pwd)" > path_info.txt
このコマンドにより、プロジェクトディレクトリに path_info.txt という名前のファイルが作成され、内容は "Current path: /home/labex/project"(または現在のパス)になります。
ファイルの内容を確認するには、cat コマンドを使うことができます。
cat path_info.txt
以下のような出力が表示されるはずです。
Current path: /home/labex/project
> 演算子は echo コマンドの出力を指定されたファイルにリダイレクトします。ファイルがすでに存在する場合は上書きされます。ファイルを上書きせずに追記したい場合は、>> 演算子を使うことができます。
たとえば、ファイルに日付と時刻を追加してみましょう。
echo "Current date and time: $(date)" >> path_info.txt
再度ファイルの内容を確認しましょう。
cat path_info.txt
両方の行が表示されるはずです。
Current path: /home/labex/project
Current date and time: Wed Jan 5 10:15:30 UTC 2023
(実際の日付と時刻はシステムの現在の日付と時刻を反映します。)