Bash
Bash - 擷取儲存在變數中的替換命令的輸入
我如何能夠擷取儲存在變數中的替換命令的輸入?
例子:
我如何能夠擷取以下命令的輸入?
bar_foo=$(openssl passwd -1 -salt "foobar")
您在上面顯示的方法將擷取子命令的輸出,即。
$(...)
進入你的變數,$bar_foo
. 使用時,openssl
您可以使用-in
或-stdin
開關提供密碼。例子
$ myvar=$(openssl passwd -1 -salt "foobar" -stdin <<< "blah") $ echo $myvar $1$foobar$1ips4/cyJvjUjCj8w4exx0
通常建議將密碼放在一個文件中,然後呼叫
openssl
,因為這樣可以將其排除在您的歷史記錄之外,並防止其暴露得太公開。更新#1
OP 最終使用此方法提示使用者輸入密碼
read
,然後將其儲存在變數pass1
.$ read -p "Password: " -s pass1
然後可以將此變數用作
openssl
命令的輸入。$ myvar=$(openssl passwd -1 -salt "foobar" -stdin <<< "$pass1") $ echo $myvar $1$foobar$1ips4/cyJvjUjCj8w4exx0