有什么像波尔斯这样的bash __DATA__吗?我的意思是该功能,后面的代码__DATA__将不会被执行.
bca*_*cat 18
Shell脚本在执行时逐行解析,因此您只需要确保执行永远不会到达您想要保护的数据.你可以这样做,例如:
# Some shell code...
exit
[data (possibly binary) goes here]
要从脚本中实际读取此数据,您可以使用一些sed magic来提取仅包含第一行之后的所有内容__DATA__,然后将该sed的输出存储在变量中.这是一个例子:
#!/bin/sh
data=$(sed '0,/^__DATA__$/d' "$0")
printf '%s\n' "$data"
exit
__DATA__
FOO BAR BAZ
LLAMA DUCK COW
如果将此脚本另存为test-data.sh并使其可执行,则可以运行它并获得以下输出:
$ ./test-data.sh
FOO BAR BAZ
LLAMA DUCK COW