下面的代码递归地查找arg1的子目录(默认情况下是pwd),用数字标记每个目录或文件。然后提示用户输入一个数字,并将该目录标记为该数字(如果是一个目录)。
但我不明白这个数字是从哪里来的.以及如何控制子目录的深度.
使用源gd.sh gd
#!/bin/bash
function gd ()
{
local dirname dirs dir
if [ $# -gt 0 ]
then
dirname=$1
else
dirname=$(pwd)
fi
dirs=$(find $dirname -type d)
PS3=`echo -e "\nPlease Select Directory Number: "`
select dir in $dirs
do
if [ $dir ]
then
cd $dir
break
else
echo 'Invalid Selection!'
fi
done谢谢你的帮助:)
发布于 2013-11-02 22:55:48
这个数字来自select ... in ...指令。它为列表中的每个元素添加一个数字。查看man页面的bash。
对于第二个问题,请使用选项-maxdepth of find
dirs=$(find $dirname -maxdepth 2 -type d)https://stackoverflow.com/questions/19747771
复制相似问题