在shell脚本和C之间进行通信

时间:2016-11-23 14:28:31

标签: c bash shell

我有一个shell脚本文件,它随机生成一个位置并将一些文件复制到这个随机生成的位置。

我还有一个不同的C代码需要访问这个随机生成的位置来访问复制的文件。

但是,shell脚本和C代码都是独立工作的(按shell脚本和C代码的顺序)。 C代码由第三个应用程序调用,因此无法将位置数据传递给C。

如何在C代码可以访问的地方安全地保存这个“随机生成的位置”数据。

我在Mac上运行这些脚本,并且更喜欢有助于将这些数据保存到内存中或者不将文件放在公共位置的解决方案(例如/ tmp,/ var / tmp等)

1 个答案:

答案 0 :(得分:1)

有多种方式可以共享信息。我个人认为保存到文件是个问题,因为您可以使用文件系统的访问控制来限制访问和/或加密文件。

但是,特别是在macOS上还有其他一些方法,例如User Defaults(可以从带有defaults的命令行访问)和Keychain(可以从带有security的命令行访问)

保存到用户默认值实际上是保存到文件(该用户可访问),因此为了安全(除了通过默默无闻),您仍然需要加密数据。同时Keychain是为安全存储而构建的,但设置对它的访问更加困难(并且您可能无意中授予shell解释器永久访问权限。)

但是,尝试类似的事情可能是值得的:

security add-generic-password -a myUserName -s myService -w '/foo/bar/baz'

security find-generic-password -g -a myUserName -s myService