Bashスクリプトから任意のファイルを生成する方法と生成されたファイルを削除する方法は?

Bashスクリプトから任意のファイルを生成する方法と生成されたファイルを削除する方法は?

Linuxでbashを使用して任意のファイルを生成する方法と生成されたファイルを削除する方法は?わかりません。

アイデア:ユーザーは任意のファイル名を入力して保存する必要があります。保存したファイルを削除することもできます。

事前にありがとう

ファイルを削除するコード:


    if [ "$REPLY" = "d" ];                                                                             

        then

        read -r -p 'Delete file: Please enter the name of the file to delete: ' -a delete_file 

        echo -e "\nFile was deleted: ${delete_file[*]}\n"                                  

        break

    fi

ベストアンサー1

>コマンド(command > file)でリダイレクト演算子witherを使用するか、ファイルを別々に生成できます。

> file

fileその名前のファイルがすでに存在する場合は、その内容が上書きされます。そのファイルが存在しない場合は、空のファイルが生成されます。

または、このコマンドを使用することもできますtouch。このコマンドは、ファイルがまだ存在しない場合は指定した名前でファイルを生成しますが、既存のファイルの内容を上書きしません。その名前のファイルが存在する場合、このtouchコマンドは変更タイムスタンプを更新します。

touch file

したがって、スクリプトでユーザーにファイル名の入力を求め、ファイルを生成するには、次の手順を実行します。

#!/bin/bash

read -p "Enter a file name: " fileName
echo "You entered: '$fileName'"

while [ -e "$fileName" ]; do
   read -p "A file named '$fileName' already exists, delete? [y/n]: "
   if [ "$REPLY" = "y" ]; then
     rm -- "$fileName"
   else
      read -p "Enter a different file name: " fileName
   fi
done

touch -- "$fileName"

任意の名前でファイルを生成するには、最良のツールは名前がターゲットmktempディレクトリで一意であることを確認することです(man mktemp詳細を参照)。

$ randomFileName=$(mktemp)
$ echo "$randomFileName"
/tmp/tmp.QLLdNLFBFd

おすすめ記事