변수의 명령

변수의 명령

명령 이름이 변수에 있는 명령문을 실행하려고 합니다. 예를 들어:

my_command='/path/to/some/command'

$my_command -f foo -b bar -s something else 

하지만 위의 방법은 효과가 없습니다. 내가 받은 오류는 쉘이 내 인수를 명령으로 해석하려고 시도하고 있음을 나타냅니다.

Bash와 Zsh에서 이 작업을 어떻게 수행합니까?

답변1

명령을 저장하려면 다음 함수를 사용할 수 있습니다.

그러나 Bourne과 유사한 쉘에서는 다음과 같습니다 bash.

mycommand() /path/to/some/command some fixed args "$@"
mycommand other args

bash중괄호가 필요합니다 .

mycommand() { /path/to/some/command some fixed args "$@";}

(이 마운트는 다른 경우에는 손상되지 않으므로 휴대성이 필요할 때 사용하는 것이 가장 좋습니다)

당신이 중독자 인 경우 csh에도 사용할 수 있습니다 alias.

다음과 같은 변수를 사용할 수 있습니다.

mycommand=/path/to/some/command

그러나 다음을 제외한 모든 쉘에서 zsh인용 확장이 필요하다는 점을 기억하십시오.

"$mycommand" its args

명령과 0번째 이상의 인수를 저장하려면 해당 명령을 지원하는 셸에서 배열을 사용할 수 있습니다 bash.zsh

mycommand=(/path/to/some/command some fixed args)
"${mycommand[@]}" some other args

zsh당신이 없애기 전에

$mycommand some other args

없는 한고정 매개변수비었다.

답변2

bash에서는 다음 줄이 작동합니다.

mycommand=/usr/bin/find
$mycommand -type d

문제는 "/path/to/some/command"와 그것이 수행하거나 시도하는 작업에서 비롯될 수 있습니다. 실물을 보지 않고서는 말씀드리기 어렵습니다.

관련 정보