Bash

如何將變數從 shell 腳本傳遞到我的 .muttrc?

  • November 3, 2021

我想muttmutt-kz實際上——我很想遷移到,neomutt但這是一個更大的項目)來獲取我的 SMTP 密碼,pass所以我不必將它以明文形式儲存在我的配置文件中,但我不是確定如何正確地將密碼傳遞到我的.muttrc.

這就是我所擁有的.muttrc

source ~/.mutt/pass.sh|
set smtp_pass = $my_pass

然後.mutt/pass.sh包含:

#! /bin/bash
my_pass=$(pass Example/user)

如果我從命令行添加並執行它,它會回顯我的密碼echo ${my_pass}pass.sh

當我啟動時,系統mutt-kz會提示我解鎖我的passgpg 密鑰,所以有些東西正在工作,但是當我嘗試從 Mutt 發送郵件時,它會詢問我的 SMTP 密碼,如果我不提供它就會失敗,消息不會發送:( “SASL 身份驗證失敗”)

那麼……我如何正確地將變數從我的 shell 腳本傳遞給我的.muttrc

該程序~/.mutt/pass.sh必須產生如下所示的輸出

set my_pass = swordfish

所以它可能是這樣的

#!/bin/sh
echo "set my_pass = swordfish"

請注意,如果您的密碼包含某些特殊字元(\'"和空格),則需要引用它。例如,如果您的密碼在文本文件~/passwords/smtp.txt中,您可以使用:

#!/bin/sh
~/passwords/smtp.txt sed 's/["$`\\]/\\&/g; s/^/set my_pass = "/; s/$/"/'

對於密碼sword\fish,這將列印出來set my_pass="sword\\fish"

如果您使用 Gnome-keyring 來儲存您的密碼,那麼您可以使用該secret-tool實用程序從密鑰環中讀取您的密碼。例如,這是我用於 Office 365 密碼的密碼(密碼不包含任何需要引用的特殊字元):

source 'printf "set imap_pass="; secret-tool lookup action_url https://login.microsoftonline.com/common/login |'

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