Linux
如何在 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 保存為變數來執行此操作時,它不起作用。
我不確定我是否完全理解您的問題,但是,我會盡力而為,希望對您有所幫助。
- 為什麼不在程式碼中使用
$BASHPID
,而不是xxx
:sudo iw phy phy0 set netns "$BASHPID"
- 您可以將其儲存到變數中:
YourVariable=$BASHPID
然後使用與我在數字 1 中提到的相同的變數:
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"