对于所有命令,如何在heredoc中进行子shell扩展?
例如:
file=report_$(date +%Y%m%d)
cat <<EOF > $file
date
hostname
echo 'End of Report'
EOF
Run Code Online (Sandbox Code Playgroud)
以便评估所有命令?
我知道
file=report_$(date +%Y%m%d)
cat <<EOF > $file
$(date))
$(hostname)
$(echo 'End of Report')
EOF
Run Code Online (Sandbox Code Playgroud)
会工作,但有没有办法默认指定子shell?
您可以使用sh(或bash)作为命令而不是cat; 实际上它将作为shell脚本运行:
sh <<EOF > $file
date
hostname
echo 'End of Report'
EOF
Run Code Online (Sandbox Code Playgroud)