다음 명령을 실행할 수 있다는 것을 알고 있습니다.
ls Some{File,Folder}
다음을 실행하는 것과 동일합니다.
ls SomeFile SomeFolder
(저도 비슷한 용도로 자주 사용합니다 mv place_{a,b}
)
그러나 다음과 같은 작업을 수행하는 다른 바로 가기가 있는지 궁금합니다.
run-command --a --whole --lot --of --flags parameter a; \
run-command --a --whole --lot --of --flags parameter b
run-command --a --whole --lot --of --flags parameter {a,b}
입력 이나 그와 비슷한 것이 필요합니다 .
답변1
bash
GNU 또는 이와 유사한 것을 사용한다고 가정합니다 .
아마도 for
사이클일까요?
for x in a b
do
run-command --a --whole --lot --of --flags parameter $x
done
한줄로 쓸 수도 있어요 for x in a b; do run-command --a --whole --lot --of --flags parameter $x ; done
답변2
스크립트를 작성하지 않고 명령줄에서 쉽게 실행하려는 경우 이 xargs
명령이 적합할 수 있습니다.
xargs는 표준 입력에서 여러 가지 항목을 가져와서 필요한 경우 여러 번 실행할 수 있는 명령에 대한 인수로 사용합니다.
다음을 시도해 보십시오:
echo -n parameter a,parameter b | xargs -n 1 -d , run-command --a --whole --lot --of --flags
-n
후행 개행 인쇄를 방지하기 위해 Echo에 플래그를 지정합니다(인수 전달 시 일부 명령에 문제 발생).
이 예에서는 실행하려는 순열을 xargs에 제공하기만 하면 됩니다.
이 -n 1
플래그는 xargs가 실행당 하나의 인수만 사용하도록 지시합니다.
이 -d ,
플래그는 xargs에게 실행될 인수 사이의 구분 기호로 입력에서 ","를 찾도록 지시합니다. (매개변수에 ","가 있으면 다른 것으로 변경해야 합니다. 매개변수에 공백이 없으면 이 플래그를 완전히 생략할 수 있습니다.)
자세한 내용은 을 참조하세요 man xargs
.
답변3
마지막에 매개변수 변경을 제한하지 않는 함수를 사용할 수도 있습니다.
runcom() { run-command --a --whole --lot --of --flags parameter "$1" ; }
runcom a
runcom b
답변4
alias
Bash에는 다음 명령이 있습니다.
$ alias shotcommand='run-command --a --whole --lot --of --flags parameter'
사용법은 다음과 같습니다:$ shotcommand a