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