나중에 사용하기 위해 bash에 함수를 저장하는 방법은 무엇입니까?

나중에 사용하기 위해 bash에 함수를 저장하는 방법은 무엇입니까?

IP에서 MAC 주소를 가져오는 기능이 있습니다.

ip2arp()  {
   local ip="$1"
   ping -c1 -w1 "$ip" >/dev/null
   arp -n "$ip" | awk '$1==ip {print $3}' ip="$ip"
   }

앞으로 사용해야 할 올바른 방법은 무엇입니까? /usr/bin에 sh로 저장하고 실행 가능하게 만들까요, 아니면 홈 디렉터리에 저장하고 bash에 별칭을 만들까요? 옳고 그른 방법이 있나요?

답변1

개인적인 용도로만 사용하는 경우 쉘의 초기화 파일에 함수로 추가할 수 있습니다(예: ~/.bashrc.

Bash의 다양한 초기화 파일에 대한 요약은 다음을 참조하세요.Bash 초보자 가이드:

또한보십시오배쉬 참조 매뉴얼:

일반적인 패턴은 함수 정의를 ~/.bashrc파일 에 넣고 ~/.bash_profile.

그러나 어떤 프로필을 사용할지는 운영 체제, 터미널 애플리케이션, 선호도에 따라 다르다는 점은 주목할 가치가 있습니다. 예를 들어 AskDifferent의 다음 게시물을 참조하세요.

StackOverflow에서 다음 기사도 참조하세요.

또는 스크립트용 개인 디렉터리(제가 사용하는 것과 같은 ~/local/bin)를 만든 다음 해당 디렉터리를 구성 파일의 PATH에 추가할 수 있습니다(예 export PATH="${HOME}/local/bin:${PATH}: .

다른 사용자가 사용할 수 있도록 하려면 /usr/local/bin( 대신 /usr/bin) 스크립트로 넣을 수 있습니다.

실행 파일을 배치할 위치에 대한 자세한 내용은 다음 게시물을 참조하세요.

답변2

이 함수를 명령줄에서만 사용하려는 경우 초기화 파일에 넣을 수 있습니다.

다른 쉘 스크립트에서도 이를 사용하려면 다음을 수행해야 합니다.

  • 필요한 쉘 스크립트에서 얻은 하나 이상의 함수 정의로 구성된 라이브러리를 중심으로 프로그래밍 환경을 구성할 수 있습니다.

  • 함수를 사용한다는 생각을 버리고 함수에서 실행 가능한 스크립트를 만듭니다.

귀하의 함수가 쉘 변수를 조작해서는 안 되는 한, 어느 방향으로 갈지는 귀하에게 달려 있습니다. 함수 대신 별도의 실행 가능한 스크립트를 사용하면 확실히 다음에서 실행할 수 있다는 이점이 있습니다.어느bash뿐만 아니라 다른 프로그램.

관련 정보