根据用户输入删除文件 - Bash Scripting

时间:2015-04-27 21:38:48

标签: arrays bash shell unix scripting

我希望能够根据用户的输入删除文件。我有一个文件和目录列表编号如下所示。我希望用户能够选择任何数字来删除相应的文件。例如,如果用户输入2,则将删除DirectoryA(假设他们有权限)。基本上,我想匹配用户输入的数字与文件并删除文件。

以下是我的代码所示:

1. Directory1
2. DirectoryA
3. DirectoryB
4. Directory_C
---
5. File1
6. FileA
7. FileB
8. File_C
Please enter index of a file or directory to remove:

这是我的代码:

#!/bin/bash
if  [[ $# -ge 1 ]]; then
   cd "$1" 2> /dev/null
   if [[ $? = 1 ]]; then
      echo "Please enter a valid directory."
   else
         Dir="TRUE"

         i=0
         c=( $(ls --group-directories-first $*) )
         count=0;

         for f in ${c[@]}; do
            if [[ ${Dir} == "TRUE" && ! -d ${f} ]]; then
               echo ---
               Dir="FALSE"
            fi
         echo "$((++count)). $f";
         done
   fi
   echo "Please enter index of a file to remove: "
   read input
else
    Dir="TRUE"

         i=0
         c=( $(ls --group-directories-first $*) )
        count=0;

         for f in ${c[@]}; do
            if [[ ${Dir} == "TRUE" && ! -d ${f} ]]; then
echo ---
               Dir="FALSE"
            fi
         echo "$((++count)). $f";
         done
   fi
   echo "Please enter index of a file to remove: "
   read input

2 个答案:

答案 0 :(得分:0)

试试这段代码。在每种情况下添加必要的操作以删除目录和文件。

<div id="uniqueId"></div>

<script>
    var elem = document.getElementById('uniqueId');
    var img = document.createElement('img');
    img.setAttribute('src', PGL_BUT_PATH);
    elem.appendChild(img);
</script>

答案 1 :(得分:0)

您可以使用bash select内置(如已经提到的Etan Reisner)来简化代码。这是一个例子:

S3="Choose file or directory to delete: "

select FILENAME in *;
do
        rm -rf $FILENAME
        exit 0
done