小编mik*_*son的帖子

bash列出文件夹中的所有子目录,将它们写入数组以在菜单中使用

我正在写一个bash脚本,我在某个目录中有多个子文件夹,我想列出子文件夹的名称,并将结果读入一个数组,从结果中省略一个名为'cmmdm'的特定文件夹.一旦我将名称读入数组,我想生成一个菜单,每个子菜单名称作为一个选项,然后我将根据用户的选择在给定的子文件夹上执行一个功能.

编辑:抱歉应该添加我的初始代码:

#!/bin/bash
# - create array
declare -a CDARRAY

# - set 0 to exit in prep for menu
CDARRAY[0]=exit

# - create a counter to use in while loop
count=1

# - while loop to itterate through folder and add each folder except cmmdm into array
ls -d /home/nginx/domains/* | {
    while read CMMDOMAIN ; do

            if [ $CMMDOMAIN != "/home/nginx/domains/cmmdm" ]
            then
            $CDARRAY[$count]=$CMMDOMAIN
            echo $CDARRAY[$count]
            count=$[count + 1]
            fi

    done
}
Run Code Online (Sandbox Code Playgroud)

这确实通过文件夹并忽略'cmmdm'但是我的代码将变量CMMDOMAIN添加到数组是错误的.我之前从未在bash中编写过脚本,所以我想我可能会出现语法错误或者缺少一些大括号或其他内容

arrays bash menu

3
推荐指数
1
解决办法
5121
查看次数

标签 统计

arrays ×1

bash ×1

menu ×1