Linux

為 bash 腳本提供密碼

  • November 10, 2018

我有一個 bash 腳本,可以加密不同的文件。

該腳本提示我為每個文件輸入密碼(加密)。

有沒有辦法將腳本所需的資訊作為腳本的參數提供,所以我不必每次都為每個文件手動輸入它們?

我試過了:

  • cat "input" | ./Script.sh
  • cat "input.txt" | ./Script.sh
  • echo "input" | ./Script.sh
  • printf 'word1\nword2\nword3\n' | ./script

編輯:用 Volker Siegel 的回答解決了這個問題:

  1. 安裝期望:sudo apt-get install expect
  2. 執行自動預期:autoexpect -f file-to-save-automation script-to-automate
  3. 執行生成的文件:./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 使用者的歷史記錄以及 , 等的輸出中看到pstop如果是我,我會提示使用者輸入密碼作為腳本的一部分。

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