쉘 명령의 결과를 다른 명령의 인수로 사용하는 대신 실제로 실행하는 방법이 있습니까?
예를 들어 다음과 같이 폴더의 모든 실행 파일에 대해 "--version"을 실행하고 싶습니다.
ls /usr/bin/ | --version
find/exec를 사용하여 방법을 찾았습니다.
find /usr/ -name valgrind -exec {} --version \;
하지만 ls를 사용하여 수행하고 싶습니다. 45분 넘게 검색했는데 아무런 도움도 찾을 수 없습니다.
답변1
이 시도:
printf '%s\n' /usr/bin/* | while IFS= read -r cmd; do "$cmd" --version; done
답변2
특정 옵션을 사용하여 디렉터리의 모든 실행 파일을 실행하려는 경우 --version
다음 한 줄을 시도해 보십시오(/usr/bin을 예제 디렉터리로 사용).
for f in /usr/bin/*; do [ -x "$f" ] && $f --version; done
답변3
답변4
셸 출력을 셸 입력으로 다시 평가하려면 eval
.
eval "$(your command here)"