スクリプトで find および tar コマンドを実行する

スクリプトで find および tar コマンドを実行する

ユーザーの対話が必要なスクリプトを作成しようとしています。デフォルトでは、スクリプトはユーザーに3つのパラメーター、つまりユーザーが見つけたいファイル名、ファイルが変更されてからの日数、tarアーカイブ名を要求する必要があります。すべてのパラメータがわかったら、スクリプトは適切なファイルを見つけて、指定された名前のアーカイブに配置する必要があります。端末に単一のコマンドを書くとき:

find -name 'zad*' -mtime -10 | tar -cvf archive.tar.gz -T -

良い結果。ユーザーが入力した変数を使用して同じスクリプトからコマンドを呼び出すにはどうすればよいですか?私のスクリプトは空のアーカイブを作成しています。

私のスクリプト:

echo "Enter a number of days"
read days
echo "Enter the name of file"
read nameoffile
echo "Enter the name of tar archive"
read nameofarchive
find -name '"$nameoffile"' -mtime -"$days" | tar -cvf "$nameofarchive".tar.gz -T -

ベストアンサー1

'余分な引用符を削除してみてください'"$nameoffile"'

例:

maulinglawns@debian-HP:~$ read nameoffile
myFile
maulinglawns@debian-HP:~$ echo '"$nameoffile"'
"$nameoffile"
maulinglawns@debian-HP:~$ echo "$nameoffile"
myFile

一重引用符が必要な場合は、次のようにエスケープしてください。

echo \'$nameoffile\'
'myFile'

おすすめ記事