0

我有一个 sh 脚本:

  #!/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:语法错误:“(”意外(预期“}”)

它的线 ...dirs=

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

4

2 回答 2

3

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

#!/bin/bash

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

于 2013-09-07T14:48:40.423 回答
2

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

于 2013-09-07T14:51:34.167 回答