【发布时间】:2017-05-17 22:30:03
【问题描述】:
我有一个有趣的问题,我似乎无法找到答案。我正在创建一个简单的应用程序,它将帮助我的开发部门使用 NginX 和配置文件自动启动 docker 容器。我的问题是,由于某种原因,在扫描目录时,我无法让 bash 脚本存储文件夹的名称。这是我所说的一个非常简单的例子......
#!/bin/bash
getFolder() {
local __myResultFolder=$1
local folder
for d in */ ; do
$folder=$d
done
__myResultFolder=$folder
return $folder
}
getFolder FOLDER
echo "Using folder: $FOLDER"
然后我将这个简单的脚本保存为 folder_test.sh 并将其放在只有一个文件夹的文件夹中,将所有者更改为我,并为其授予正确的权限。但是,当我运行脚本时,我不断收到错误...
./folder_test.sh: 8 ./folder_test.sh: =test_folder/: not found
我尝试将$folder=$d 部分放在不同类型的引号中,但没有任何效果。我试过$folder="'"$d"'"、$folder=`$d`、$folder="$d",但都没有。让我发疯,任何帮助将不胜感激。谢谢。
【问题讨论】:
-
shellcheck.net 会自动为您捕获。
-
顺便说一句,如果你不标记
local d,你就会把它泄露到你的函数的外部范围中。 -
人力资源部。不过,更仔细地阅读——您的目标是执行间接任务?抱歉——我不应该关闭它。