スクリプトはバックアップファイルを生成できません。

スクリプトはバックアップファイルを生成できません。

私はシェルスクリプトに初めて触れ、スクリプトを書こうとしています。

  • ディレクトリプロンプト
  • ディレクトリを通るループ
  • ファイルが見つかったら、スクリプトの機能を使用してバックアップします。
  • バックアップの作成

すべてのファイルが見つかったら、コピーするためにfile.bakというファイルを作成しました。

#!/bin/bash


function backup()
{
cp"$name" >> file.bak
}


#Main Script
echo -n "Please enter a directory name: "
read name
directory="/home/shawn"
if [ -O "$name" ] || [ -G "$name" ]
then
backup
else
echo "$name has no files."
fi

ベストアンサー1

まず第一に、これはおそらくあなたの目的に合わないでしょう:

cp"$name" >> file.bak

cpその後、最初の2文字はで、残りの文字はコマンド呼び出しを試みます $name。そのようなコマンドが存在しない可能性があります。

スペースを追加しても問題は解決しません。

cp "$name" >> file.bak

これはcp、単一の引数(誤った呼び出し方法)を使用してコマンドを呼び出し、コマンドがstdoutに印刷する内容を文字列という名前で追加しますfile.bakcp "$name" file.bakcat "$name" >> file.bak

-Oとを使ったテストも-Gあまり意味がありません。印刷中のエラーメッセージは、実際にはこれらの演算子が確認するものと一致しません。

おすすめ記事