Linux
為 bash 腳本提供密碼
我有一個 bash 腳本,可以加密不同的文件。
該腳本提示我為每個文件輸入密碼(加密)。
有沒有辦法將腳本所需的資訊作為腳本的參數提供,所以我不必每次都為每個文件手動輸入它們?
我試過了:
cat "input" | ./Script.sh
cat "input.txt" | ./Script.sh
echo "input" | ./Script.sh
printf 'word1\nword2\nword3\n' | ./script
編輯:用 Volker Siegel 的回答解決了這個問題:
- 安裝期望:
sudo apt-get install expect
- 執行自動預期:
autoexpect -f file-to-save-automation script-to-automate
- 執行生成的文件:
./file-to-save-automation
你需要這個程序
expect
。你需要做的是它的主要用途。您用於
autoexpect
生成使用您的程序的記錄。錄音是(tcl)中的一個腳本,可以執行你的腳本,包括輸入密碼。
如果它不能完美執行,您可以編輯生成的腳本。該語言不再廣泛使用,但非常簡單。查看您需要的程式碼範例。
您應該很容易找到適用於您的案例的使用範例。
是的,可以在腳本中使用位置變數引用參數。
EG -
#!/bin/bash if [ $# -ge 1 ] then echo First argument is $1 fi
./my_script argument1
用…呼叫它所以你可以
$1
使用$9
,如果你需要超過 9 個,你可以使用shift
,嗯.. 轉移它們。綜上所述,在命令行上接受密碼通常很糟糕,因為它可以在 hte 使用者的歷史記錄以及 , 等的輸出中看到
ps
。top
如果是我,我會提示使用者輸入密碼作為腳本的一部分。