문제

나는 다음과 같은 문제는:나는 많은 테스트를 스크립트를 사용하여 실행되는 현재 MKS Toolkit.우리는 실행하는 스크립트를 사용하는 mingw 쉘(msys) 하지만 거기에 다른 스크립트를 사용하는 일부 aliases 기본 내장되어 있는 MKS Toolkit 지에 bash.

문제는 아무도 변경하고자 그는 스크립트,심지어 스크립트를 사용하여 자동으로.이는 내가 정의해야 합니다 사람 별명이 있습니다.려고 했을 정의하는 별칭에"/etc/profile"파일의 msys 쉘은 하나도 없지만 성공입니다.도 사용 shopt -s expand_aliases ("/etc/프로파일")하지만 그 중 하나가 작동 하지 않습니다.

할 수 있는 사람이 있었을 공유하는 방법에 대한 아이디어를 이용할 수 있습니다.는 마음은 기존 스크립트가 남아 있어야 할 것이 동일합니다.

어떤 생각이나 아이디어를 환영합니다.

감사

도움이 되었습니까?

해결책 2

이 답변 나에게 솔루션입니다.그것을 정의하는 변수 BASH_ENV 실행하기 전에

bash script_name.sh

BASH_ENV 이를 가리키는 스크립트 설정하는 환경의 쉘입니다.나의 케이스에서,내보내기 aliases 고 또한 기능에 필요한 스크립트는 다음과 같습니다:

shopt -s expand_aliases

alias my_alias="echo my_alias"

function MyFunction {
    echo "MyFunction(DUMB):" $* 
}

export -f MyFunction

다른 팁

/etc/profile는 로그인 쉘에만 소스입니다.스크립트의 별칭을 원한다면 별도의 파일에 넣고 필요로하는 스크립트로 소스해야합니다.예 :

aliases.sh :

alias walrus="echo coo coo cah joo"
.

script.sh :

#!/bin/bash

shopt -s expand_aliases
. aliases.sh

walrus
.

및 그 다음

$ ./script.sh
coo coo cah joo
.

그것은 아마도 그것을 할 수있는 가장 합리적인 방법 일 것입니다.스크립트를 모두 에서 변경하지 않으면 다음과 같이 간접적으로 실행할 수 있습니다.

bash --rcfile aliases.sh -i script.sh
.

bash가 대화 형 쉘을 실행하여 script.sh를 실행하기 전에 별명을 확장하고 별명을 확장하고

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top