Bash
正確轉義引號
我有以下命令:
python -c 'import crypt; print(crypt.crypt("$Password", crypt.mksalt(crypt.METHOD_SHA512)))'
$Password
shell變數在哪裡。如何正確地將其擴展為變數,而不是將其視為文字?
不要因為那將是程式碼注入漏洞,並且還要避免在命令的參數中傳遞密碼,因為它們會通過顯示在輸出中
ps
而變得公開,並且有時會記錄在一些審計日誌中。使用環境變數通常更好:
PASSWORD="$Password" python3 -c 'import os, crypt print(crypt.crypt(os.getenv("PASSWORD"), crypt.mksalt(crypt.METHOD_SHA512)))'
(這裡使用
VAR=value cmd
語法而不是export VAR
環境變數只傳遞給那個命令呼叫)。