Linux

如何在 bash 腳本中複製 $BASHPID?

  • April 2, 2022

我有一個網路命名空間,我想用這個 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"
  1. 您可以將其儲存到變數中:
YourVariable=$BASHPID

然後使用與我在數字 1 中提到的相同的變數:

sudo iw phy phy0 set netns "$YourVariable"
  1. 您可以將其儲存到文件中:
echo "$BASHPID" > YourFile

它創建一個名為 YourFile 的新文件,其中包含 bash pid。

您可以稍後閱讀它並將其用於新變數:

YourVariable=$(cat YourFile)

請注意,您應該在同一目錄中YourFile或使用YourFile.

最後,您可以使用YourVariable與數字 2 中提到的類似的方法。

sudo iw phy phy0 set netns "$YourVariable"

引用自:https://unix.stackexchange.com/questions/697627