Bash - 변수에 저장된 대체 명령의 입력 캡처

Bash - 변수에 저장된 대체 명령의 입력 캡처

변수에 저장된 바꾸기 명령의 입력을 어떻게 캡처할 수 있나요?

예:

다음 명령의 입력을 어떻게 캡처할 수 있습니까?

bar_foo=$(openssl passwd -1 -salt "foobar")

답변1

위에서 보여준 방법은 하위 명령의 출력을 캡처합니다. $(...)변수에 를 사용할 때 또는 스위치를 사용하여 비밀번호를 제공 $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

관련 정보