Text-Processing

如何使用腳本向 Firefox 的profiles.ini 添加新的配置文件條目?

  • June 10, 2021

Firefox 使用一個名為的文本文件~/.mozilla/firefox/profiles.ini來保存配置文件列表。這些條目看起來與此類似:

[Profile0]
Name=default
IsRelative=1
Path=default
Default=1

...

[Profile8]
Name=guest
IsRelative=1
Path=guest

我需要添加一個新條目來profiles.ini使用 bash 腳本。問題是配置文件需要按順序編號,我事先不知道每個使用者有多少個配置文件。在上面的例子中,我需要添加

$$ Profile9 $$. 如果相反,我添加$$ Profile8 $$或者$$ Profile10 $$或任何其他數字,它將無法正常工作。 我的腳本如何確定目前使用的最高配置文件編號,然後增加該編號並將新配置文件附加到profiles.ini

我已經在 a 中使用了這樣的東西for-loop,但我不知道如何獲得$NewNumber

echo "[Profile$NewNumber]
Name=NewProfile
IsRelative=1
Path=NewPath" >> /home/$myuser/.mozilla/firefox/profiles.ini

也許使用 awk 來提取“

$$ Profile $$" 行然後處理掉 “$$ Profile … $$” 位,然後對結果進行數字排序,只保留最後一個(最高的):

highest=$(awk '/^\[Profile[0-9]+\]$/ { s=substr($0, 9); sub("]","", s); print s}' < /home/$myuser/.mozilla/firefox/profiles.ini |sort -n | tail -1)
highest=$((highest + 1))
printf "[Profile%d]
Name=NewProfile
IsRelative=1
Path=NewPath" "$highest" >> /home/$myuser/.mozilla/firefox/profiles.ini

簡單的方法:

/usr/bin/firefox -CreateProfile profileName 

它將維護文件中的配置profiles.ini文件並創建一個新配置文件(profileName在這種情況下)。

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