다른 파일을 암호화하는 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
답변1
이 앱이 필요합니다 expect
. 당신이해야 할 일은 그것의 주요 목적입니다. 사용 프로그램을 생성하는
데 사용하는 기록입니다 autoexpect
.
기록되는 것은 (tcl)의 스크립트로, 비밀번호 입력을 포함하여 스크립트를 실행할 수 있습니다.
완벽하게 작동하지 않으면 생성된 스크립트를 편집할 수 있습니다. 이 언어는 더 이상 널리 사용되지 않지만 매우 간단합니다. 필요한 것이 무엇인지 알아보려면 코드 예제를 확인하세요.
귀하의 사례에 맞는 사용 예를 쉽게 찾을 수 있어야 합니다.
답변2
예, 매개변수는 스크립트의 위치 변수를 통해 참조될 수 있습니다.
예-
#!/bin/bash
if [ $# -ge 1 ]
then
echo First argument is $1
fi
그걸로 ./my_script argument1
전화해
$1
따라서 을 사용해야 합니다 $9
. 9개 이상이 필요하면 을 사용할 수 있습니다 shift
. 음.. 전송하세요.
즉, 명령줄에서 비밀번호를 수락하는 것은 일반적으로 사용자 기록과 의 출력 등에서 볼 수 있기 때문에 좋지 않습니다. 저 ps
라면 top
스크립트의 일부로 사용자에게 비밀번호를 묻는 메시지를 표시할 것입니다.