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
답변1
가장 간단한 방법:
/usr/bin/firefox -CreateProfile profileName
profiles.ini
파일의 프로필을 유지 하고 새 프로필을 만듭니다( profileName
이 경우).
답변2
어쩌면 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
답변3
포괄적인 접근 방식을 취하는 것은 어떨까요 awk
?
awk '
/Profile[0-9]+/ {PRNR = $0
gsub (/[^0-9]/, "", PRNR)
}
1
END {print ""
print "[Profile" ++PRNR "]"
print "Name=NewProfile"
print "IsRelative=1"
print "Path=NewPath >> /home/$myuser/.mozilla/firefox/profiles.ini"
}
' profiles.ini