我有一个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 =
我喜欢回显文件夹中的所有可用目录,用户可以在提示界面中选择它。
答案 0 :(得分:3)
您使用bash shell中的功能,因此您应该在bash中执行脚本。将第一行更改为:
#!/bin/bash
/bin/sh
可以是任何与POSIX兼容的shell,例如在Ubuntu上它是破折号。
答案 1 :(得分:2)
这是一个bash脚本,因此您应该确保使用bash
运行它。将其称为bash script.sh
。你也应该从0开始索引而不是1:let i=0
。