我正在尝试将一个 shell 命令嵌入到我的 Chef 食谱中,但是当 Chef 执行该命令时,它似乎出错了。这是有问题的资源:
script "create libs symlink" do
interpreter "bash"
user "root"
cwd "/home/robin/test"
code <<-EOH
ln -s $(ls -1 | grep '^[0-9.-]\+$') curr-version-libs
EOH
end
该/home/robin/test
目录包含一个名为 19.26-3 的文件夹,所以我期待一个名为curr-version-libs
指向19.26-3
.
相反,我最终得到了一个循环符号链接:
drwxr-xr-x 4 root root 4096 Jan 17 22:35 19.26-3
drwxr-xr-x 2 root root 4096 Jan 17 22:35 config
lrwxrwxrwx 1 root root 17 Jan 28 17:31 curr-version-libs -> curr-version-libs
似乎 $(ls -1 | grep '^[0-9.-]+$') 正在被删除,我最终得到了 command ln -s curr-version-libs
。
有谁知道这里发生了什么?我试过使用execute
资源,但我得到了相同的结果。