有什么像perls __DATA__这样的bash吗?

sid*_*com 12 bash shell

有什么像波尔斯这样的bash __DATA__吗?我的意思是该功能,后面的代码__DATA__将不会被执行.

bca*_*cat 18

Shell脚本在执行时逐行解析,因此您只需要确保执行永远不会到达您想要保护的数据.你可以这样做,例如:

# Some shell code...

exit

[data (possibly binary) goes here]
Run Code Online (Sandbox Code Playgroud)

要从脚本中实际读取此数据,您可以使用一些sed magic来提取仅包含第一行之后的所有内容__DATA__,然后将该sed的输出存储在变量中.这是一个例子:

#!/bin/sh

data=$(sed '0,/^__DATA__$/d' "$0")
printf '%s\n' "$data"

exit

__DATA__
FOO BAR BAZ
LLAMA DUCK COW
Run Code Online (Sandbox Code Playgroud)

如果将此脚本另存为test-data.sh并使其可执行,则可以运行它并获得以下输出:

$ ./test-data.sh
FOO BAR BAZ
LLAMA DUCK COW
Run Code Online (Sandbox Code Playgroud)