如何在 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 脚本中运行它?当我尝试使用命令打开另一个 shell 并将 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
    

    它创建一个名为 YourFile 的新文件,其中包含 bash pid。

    您稍后可以读取它并将其用于新变量:

    YourVariable=$(cat YourFile)
    

    请注意,您应该与 位于同一目录中YourFile或使用YourFile.

    最后,您可以YourVariable像第 2 项中提到的那样使用。

    sudo iw phy phy0 set netns "$YourVariable"
    

相关内容