shell sh-Script中的目录列表

时间:2013-09-07 14:16:07

标签: linux bash shell

我有一个sh-Script:

  #!/bin/sh

  dirs=( $(find . -maxdepth 1 -type d -printf '%P\n') )
        echo "There are ${#dirs[@]} dirs in the current path"

        let i=1

        for dir in "${dirs[@]}"; do
            echo "$((i++)) $dir"
        done
        answer=2

        echo "you selected ${dirs[$answer]}!"

但是我得到了错误:

  

symfonymenu.sh:语法错误:“(”unexpected(expecting“}”)

它的线...... dirs =

我喜欢回显文件夹中的所有可用目录,用户可以在提示界面中选择它。

2 个答案:

答案 0 :(得分:3)

您使用bash shell中的功能,因此您应该在bash中执行脚本。将第一行更改为:

#!/bin/bash

/bin/sh可以是任何与POSIX兼容的shell,例如在Ubuntu上它是破折号。

答案 1 :(得分:2)

这是一个bash脚本,因此您应该确保使用bash运行它。将其称为bash script.sh。你也应该从0开始索引而不是1:let i=0