Bash パラメータのクリーンアップ

Bash パラメータのクリーンアップ

ユーザー入力を受け入れ、複数のタスクを実行するスクリプトがあります。私が心配していることの1つは、ファイル名を取得してファイルを削除することです。たとえば、rm -rf $arg1 です。

技術的には、ユーザーはこのパラメータに/を入力してコンテンツを削除できます。実際に、rmコマンドを実行する前にすべてのシンボルがエスケープされるようにするにはどうすればよいですか? (すべてが1つのディレクトリで発生するため、私の要件は文字と数字のみです。)

私は一つを思い出したecho "$name" | grep -v symbols > $newname

これが良いアプローチかどうかはわかりません。これについてどんな提案がありますか?

答え1

  1. grepを使用して確認します(/sum *)。

    if echo "$user_cmd" | grep '*\|\/'; then
    ...
    fi
    
  2. しかし、…権限の問題と考える必要があります。ロック権限を持つグループにスクリプトを使用するユーザーを割り当てます。ファイル拡張子().にピリオド()を使用できるので、単に文字を削除するよりも優れています。.JPG../../

関連情報