![将参数安全传输到程序(dash/bash)](https://linux22.com/image/200820/%E5%B0%86%E5%8F%82%E6%95%B0%E5%AE%89%E5%85%A8%E4%BC%A0%E8%BE%93%E5%88%B0%E7%A8%8B%E5%BA%8F%EF%BC%88dash%2Fbash%EF%BC%89.png)
- 通过标准输入传输
#!/bin/dash
echo 'password' | program -
- 使用中间变量通过 stdin 传输
var_pass=$(echo 'password')
echo $var_pass | program -
unset var_pass
- 使用中间流通过 stdin 传输
echo 'password' | (echo $(cat /dev/fd/4) | program -) 4<&0
就可能的数据拦截(妥协)而言,这些选项是否有很大不同?例如,额外变量或线程的使用会增加多少数据被盗的风险(从 RAM 等)。也许还有其他更好的选择?