때로는 쉘 스크립트에서 단일 명령을 실행해야 할 때도 있습니다.
나는 sed -n 'line_num p'
그 줄을 인쇄할 수 있다는 것을 이미 알고 있다. 그런데 명령으로 출력된 특정 줄을 어떻게 실행할 수 있나요?
답변1
이 시도:
sed -n 'line_num p' | bash
또는 명령에 공백이 포함되어 있지 않으면
"$(sed -n 'line_num p')"
답변2
이 작업을 대화형으로 수행하면 bash 기록에 다음 줄을 쓸 수 있습니다.
history -s "$(sed -n 'line_num p')"
그런 다음 press는 ↑Enterreadline 버퍼에 줄을 삽입하고 실행합니다. 이렇게 하면 너무 늦기 전에 줄을 훑어볼 수 있는 기회가 제공됩니다.
답변3
넌 할 수있어...
{ head -n"$((NUM-1))"; IFS= read -r line; } </path/to/script >/dev/null
eval "$line"
$NUM
이는 쉘 변수의 스크립트 행만 가져오고 $line
이를 현재 쉘의 명령으로 평가합니다.
또 다른 접근 방식은 다음과 같습니다.
</path/to/script sed "${NUM}q;d" >/tmp/"$$"
. /tmp/"$$" ; rm /tmp/"$$"
답변4
Bash에서는 다음 명령을 실행할 수 있습니다.
for line in $(cat file.txt); do command $line; done