bash 스크립트에서 $BASHPID를 복사하는 방법은 무엇입니까?

bash 스크립트에서 $BASHPID를 복사하는 방법은 무엇입니까?

네트워크 네임스페이스가 있고 이 netns bash pid를 사용하여 명령을 실행하고 싶습니다. bash 스크립트에서 이 작업을 어떻게 수행합니까? 코드 예:

sudo ip netns add ns1 #this is my network namespace

#In separate shell I have to run following commands
sudo ip netns exec ns1 bash
echo $BASHPID #I want to use this bash pid in the next command 

sudo iw phy phy0 set netns xxxx # xxxx is the example of bash pid

bash 스크립트에서 이것을 실행할 수 있습니까? 명령을 사용하여 다른 쉘을 열고 bash pid를 변수로 저장하여 이 작업을 수행하려고 하면 작동하지 않습니다.

답변1

귀하의 질문을 완전히 이해했는지 잘 모르겠습니다. 최선을 다해 도움이 되기를 바랍니다.

  1. $BASHPID대신 코드에서 사용하지 않는 이유는 무엇입니까 ?xxx

    sudo iw phy phy0 set netns "$BASHPID"
    
  2. 변수에 저장할 수 있습니다.

    YourVariable=$BASHPID
    

    그런 다음 첫 번째 변수에서 언급한 것과 동일한 변수를 사용합니다.

    sudo iw phy phy0 set netns "$YourVariable"
    
  3. 파일에 저장할 수 있습니다.

    echo "$BASHPID" > YourFile
    

    bash pid를 포함하는 YourFile이라는 새 파일을 생성합니다.

    나중에 읽어서 새 변수에 사용할 수 있습니다.

    YourVariable=$(cat YourFile)
    

    와 동일한 디렉토리에 있거나 YourFile을 사용해야 합니다 YourFile.

    마지막으로 YourVariable항목 2에서 언급한 대로 사용할 수 있습니다.

    sudo iw phy phy0 set netns "$YourVariable"
    

관련 정보