我似乎无法找到在Chef中运行shell代码块的证明。例如,我有一个脚本如下:
for user in `awk -F: '($3 < 500) {print $1 }' /etc/passwd` ; do
if [ $user != "root" ]; then
usermod -L $user
if [ $user != "sync" ] && [ $user != "shutdown" ] && [ $user != "halt" ];
then
usermod -s /sbin/nologin $user
fi
fi
done
..我怀疑运行这个块的方法如下
bash 'run script' do
code <<-EOH
"for user in `awk -F: '($3 < 500) {print $1 }' /etc/passwd` ; do
if [ $user != "root" ]; then
usermod -L $user
if [ $user != "sync" ] && [ $user != "shutdown" ] && [ $user != "halt" ];
then
usermod -s /sbin/nologin $user
fi
fi
done"
EOH
end
但我真的不确定这个结构是否有效。
你不需要外面的额外""
,<<-EOH ... EOH
已经是一种引用,称为heredoc。