我有一个包含100行代码的shell脚本,用于执行一些敏感业务逻辑。我使用GPG加密对该文件进行了加密,现在我想像执行原始shell文件一样执行加密文件。
基本上,我希望在不解密的情况下执行shell文件内容,以便该文件的用户不能看到shell文件中的代码,但应该能够执行它。
我已经尝试过:
decrypted=$(gpg -d ...)
eval "$decrypted"
但是对于大文件来说,这种方法并不起作用。
我有一个包含100行代码的shell脚本,用于执行一些敏感业务逻辑。我使用GPG加密对该文件进行了加密,现在我想像执行原始shell文件一样执行加密文件。
基本上,我希望在不解密的情况下执行shell文件内容,以便该文件的用户不能看到shell文件中的代码,但应该能够执行它。
我已经尝试过:
decrypted=$(gpg -d ...)
eval "$decrypted"
我在使用以下内容:
$ bash < <(gpg -qd script.sh.gpg 2>/dev/null)
或者
$ gpg -qd script.sh.gpg 2>/dev/null | bash -
-x
标志,这样你就可以找出它在哪里出错了。你可能会发现引用或转义问题,因为你只是评估从字符串中提取的代码。 - jane arc