Password
從標準輸入讀取並通過管道傳輸到下一個命令
我想從標準輸入讀取密碼,抑制其輸出並使用 base64 對其進行編碼,如下所示:
read -s|openssl base64 -e
什麼是正確的命令?
read 命令設置 bash 變數,它不輸出到標準輸出。
例如,將 stdout 放入 nothing1 文件,將 stderr 放入 nothing2 文件,您將在這些文件中看不到任何內容(帶或不帶 -s arg)
read 1>nothing1 2>nothing2 # you will see nothing in these files (with or without -s arg) # you will see the REPLY var has been set echo REPLY=$REPLY
所以你可能想做類似的事情:
read -s pass && echo $pass |openssl base64 -e # Read user input into $pass bash variable. # If read command is successful then echo the $pass var and pass to openssl command.
從 man bash SHELL BUILTIN COMMANDS 讀取命令:
read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...] One line is read from the standard input, or from the file descriptor fd supplied as an argument to the -u option, and the first word is assigned to the first name, the second word to the second name, and so on, with leftover words and their intervening separators assigned to the last name. -s Silent mode. If input is coming from a terminal, characters are not echoed. If no names are supplied, the line read is assigned to the variable REPLY.