Usar bash para essa tarefa deve ser possível, mas eu prefiro fazer manipulações complexas de array com um script Python3:
#!/usr/bin/env python3
import argparse
import subprocess
import sys
parser = argparse.ArgumentParser()
parser.add_argument("schema", help="gsettings shema", metavar="SCHEMA")
parser.add_argument("key", help="gsettings key", metavar="KEY")
parser.add_argument("values",
help="gsettings value(s) to remove from the KEY array",
metavar="VALUE", nargs='*')
args = parser.parse_args()
array = eval(subprocess.check_output(["gsettings", "get", args.schema, args.key]))
for v in args.values:
try:
value = eval(v)
except:
value = v
try:
array.remove(value)
except ValueError:
print("Warning: {} not in {} {}".format(value, args.schema, args.key), file=sys.stderr)
subprocess.call(["gsettings", "set", args.schema, args.key, str(array)])
Esse script permite que vários valores sejam removidos ao mesmo tempo do esquema / chave passado para o script.