我将一些命令作为此功能的参数:
function check_command
{
if ! "$1"
then
echo "Error when executing $1 - exiting"
end
exit 1
fi
}
在功能中检查命令执行。
我用fdisk命令调用此函数:
check_command "sudo fdisk $system_disk_path <<EOT
o
p
n
p
1
+100M
t
c
n
p
2
w
EOT"
但是我收到了一个错误:
EOT: No such file or directory
如何使用Here doc命令?
答案 0 :(得分:0)
为了将整个命令作为单个参数。在这种情况下,正如所说的@ 123
在param扩展后你不能使用文件操作符,因为它们是在
之前处理的
因此,使用typeof(b) <- typeof(a)
是解决方案:
eval
答案 1 :(得分:0)
定义die
函数并在任意命令之后调用比将其传递给函数要简单得多:
die () {
echo "Error: $1 - exiting"
exit 1
}
sudo fdisk "$system_disk_path" <<EOT || die "fdisk failed"
o
p
n
p
1
+100M
t
c
n
p
2
w
EOT