파일의 모든 명령을 대화식으로 실행하는 방법

파일의 모든 명령을 대화식으로 실행하는 방법

100줄이 넘는 텍스트 파일이 있는데 commands.txt, 각 줄은 셸 명령입니다.

echo foo
...
echo bar

파일의 각 줄을 실행하고 싶지만 실행하기 전에 각 줄을 확인하고 싶습니다. 또한 일부 라인에는 공통 코드가 있습니다.

ping <dest_host>

이 명령에 적절한 단어를 작성해야 합니다. 저는 이 모든 명령을 순서대로 실행하는 쉬운 방법을 찾으려고 노력하고 있습니다. 스크립트처럼 실행하는 것은 옵션이 아니며 각 줄을 복사하여 붙여넣는 것은 약간 지루할 것입니다.

어떤 아이디어가 있나요?

답변1

carefully_run.sh다음을 사용하여 스크립트 이름을 지정할 수 있습니다.

#!/usr/bin/bash                                                                
                                                                               
while IFS= read -r -u3 cmd
do
    read -e -i "$cmd" -p "$USER $ " cmd
    eval "$cmd"
done 3<$1

그럼 그냥 달려가면 돼

carefully_run.sh commands.txt

각 줄에 대해 commands.txt작성된 줄의 내용이 포함된 프롬프트가 표시됩니다. 그런 다음 필요에 따라 이를 검토하고 수정할 수 있으며 Enter 키를 누르면 명령이 실행됩니다. 그러면 다음 내용이 표시됩니다.

노트:

commands.txt이런 줄을 포함 시키면

foo=bar

foo명령을 실행할 때 값은 유지되지만 commands.txt마지막 명령 이후에는 손실됩니다. 이를 보존해야 하고 실행 중인 경우 다음을 bash실행하여 그렇게 할 수 있습니다.

source carefully_run.sh commands.txt

바꾸다

./carefully_run.sh commands.txt

관련 정보