用法

用法

需要编写一个脚本,选择目录中的一个子目录来使用它。

我是这样认为的。

  1. 这是 /SampleDir/,它有 /SubDir1/、/SubDir2/ 和 /SubDir3/

  2. 用户输入目录位置,程序搜索它并向用户提供此目录中的子目录列表,用户只需单击列表号即可选择他想要工作的子目录:

  3. 代码

echo "Сhoose Directory:\n"
read SOMEDIR
//  #check nubmber of subdirs
echo "In directory you have multiple subdir's, which one do you want to use"
// #choose subdir
// #Any operation, like Remove SubDir
  1. 在终端也一样

选择目录:

输入:/根/文档/示例目录/

在目录中,您有多个子目录,您想使用哪一个:

1)SubDir1

2)SubDir2

3)SubDir3

输入:1

多谢

答案1

我写了这个脚本选择输入起来很费时间的长子目录名称。

用法

当您拨打电话cdd并且有多个子目录时,您需要选择一个:

CDD.png

在此屏幕中,如果您点击好的按钮它相当于:

cd Seven\ Mary\ Three

或者:

cd "Seven Mary Three"

当您调用cdd并且只有一个子目录时,它会自动更改为该子目录:

rick@alien:~/Music/Seven Mary Three$ cdd
rick@alien:~/Music/Seven Mary Three/American Standard$ 

当您调用cdd并且没有子目录时,会显示错误:

rick@alien:~/Music/Seven Mary Three/American Standard$ cdd
No subdirectories
rick@alien:~/Music/Seven Mary Three/American Standard$ 

答案2

您可以将目录列表放在数组中

mapfile -d '' -t dirs < <(printf '%s\0' */)

然后使用 bashselect构造:

select d in "${dirs[@]}"; do echo "You chose: $d"; break; done
1) Desktop/           3) dir/               5) opt/               7) somedir/           9) subdir/
2) Documents/         4) openssh-8.2p1/     6) qgis_sample_data/  8) src/
#? 5
You chose: opt/

将 替换echo为您实际想要对选定目录执行的操作。

相关内容