Bash

Bash - 擷取儲存在變數中的替換命令的輸入

  • March 31, 2016

我如何能夠擷取儲存在變數中的替換命令的輸入?

例子:

我如何能夠擷取以下命令的輸入?

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

引用自:https://unix.stackexchange.com/questions/273313