我有一个网络命名空间,我想使用这个 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 脚本中运行它?当我尝试使用命令打开另一个 shell 并将 bash pid 保存为变量来执行此操作时,它不起作用。
答案1
我不确定我是否完全理解了您的问题,但我会尽力,希望它有所帮助。
为什么不在代码中使用
$BASHPID
而不是:xxx
sudo iw phy phy0 set netns "$BASHPID"
您可以将其存储到变量中:
YourVariable=$BASHPID
然后使用与我在第一条中提到的相同的变量:
sudo iw phy phy0 set netns "$YourVariable"
您可以将其存储到文件中:
echo "$BASHPID" > YourFile
它创建一个名为 YourFile 的新文件,其中包含 bash pid。
您稍后可以读取它并将其用于新变量:
YourVariable=$(cat YourFile)
请注意,您应该与 位于同一目录中
YourFile
或使用YourFile
.最后,您可以
YourVariable
像第 2 项中提到的那样使用。sudo iw phy phy0 set netns "$YourVariable"