簡體   English   中英

另一個命令中的bash管道變量

[英]bash pipe variable in another command

我想執行 open-ssl 來多次加密一個帶有 wordlist 的文件。 每次我使用:

  openssl enc -e -rc4 -in plain -out cipher
  enter rc4 encryption password:

我想做的是

  echo "differentpasswordeverytime" | openssl enc -e -rc4 -in plain -out cipher

我已經完成了 while 循環,但我找不到將其解析為 openssl 的方法。 這應該是通過 openssl 的 STDIN 嗎?

我發現了另外 2 個關於標准輸入和解析輸入的帖子,但這些沒有用。

干杯

引用man openssl (接近結尾):

通過相關論點

有幾個命令接受密碼參數,通常分別使用-passin-passout作為輸入和輸出密碼。 這些允許從各種來源獲得密碼。 這兩個選項都采用單個參數,其格式如下所述。 如果沒有給出密碼參數並且需要密碼,則提示用戶輸入一個:通常會在關閉回顯的情況下從當前終端讀取該密碼。

接下來是獲取密碼的可能方式列表。 我認為你想要的是stdin ,盡管使用環境變量的選項可能會更好。 (您需要export該變量才能工作。)

我建議你仔細閱讀說明,同時考慮到安全隱患。 您還應該閱讀您正在使用的子命令( enc )的聯機幫助頁,或者如果您指定了一個它不理解的選項,則至少要閱讀所提供的摘要。

(在enc中,指定的實際的選擇是既不-passin也不-passout而是-pass 。)

如果要將變量通過管道傳輸到命令中,則應使用echo但要小心,因為實現可能會有所不同,並且多行變量有時會折疊為一行。 對我來說 bash echo "$variable" | command echo "$variable" | command有效,並保留多行字符串。

如果您希望內部/n和其他轉義字符被評估為換行符,您應該像這樣傳遞-e標志:

echo -e "$variable" | command

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM