네트워크 네임스페이스가 있고 이 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
귀하의 질문을 완전히 이해했는지 잘 모르겠습니다. 최선을 다해 도움이 되기를 바랍니다.
$BASHPID
대신 코드에서 사용하지 않는 이유는 무엇입니까 ?xxx
sudo iw phy phy0 set netns "$BASHPID"
변수에 저장할 수 있습니다.
YourVariable=$BASHPID
그런 다음 첫 번째 변수에서 언급한 것과 동일한 변수를 사용합니다.
sudo iw phy phy0 set netns "$YourVariable"
파일에 저장할 수 있습니다.
echo "$BASHPID" > YourFile
bash pid를 포함하는 YourFile이라는 새 파일을 생성합니다.
나중에 읽어서 새 변수에 사용할 수 있습니다.
YourVariable=$(cat YourFile)
와 동일한 디렉토리에 있거나
YourFile
을 사용해야 합니다YourFile
.마지막으로
YourVariable
항목 2에서 언급한 대로 사용할 수 있습니다.sudo iw phy phy0 set netns "$YourVariable"