将二进制代码作为here-doc插入shell脚本?

时间:2013-12-26 12:35:11

标签: bash shell

src:unix编程环境

一个shell脚本./bundle:它适用于文本文件,但二进制代码:(

#!/bin/bash
echo '# To unbundle , sh this file'
for i
do
    echo "echo $i 1>&2"
    echo "cat >$i <<'End of $i'"
    cat $i
    echo "End of $i"
done

一个名为a.out的简单二进制文件,

% ./bundle a.out >> out
% chmod u+x out
% ./out # error happened

我得到了:

./out: line 8: warning: here-document at line 3 delimited by end-of-file (wanted `End of a.out')

是的,我知道`a end of a.out'应该是一个单独的行。但我不知道如何实现它。

谁有一些想法?

提前thx。 :d

1 个答案:

答案 0 :(得分:1)

您可以对二进制文件进行编码(如shar所做),或按makeself进行编码,按原样附加二进制文件并使用dd将其读出。 (你显然也可以使用这些工具之一)