var=$((var + 1))
Арифметика в bash использует синтаксис $((...)).
Не так гладко, как решение муру, но другой способ с использованием comm, tr и cut и sort:
comm -13 <(<file tr ',' '\n' | sort) <(cut -d ':' -f 1 /etc/passwd | sort)
comm -13 <(<file tr ',' '\n' | sort) <(cut -d ':' -f 1 /etc/passwd | sort): сравнивает строки на выходе из <file tr ',' '\n' | sort и cut -d ':' -f 1 /etc/passwd | sort и печатает только строки, уникальные для cut -d ':' -f 1 /etc/passwd | sort; <file tr ',' '\n' | sort: читает STDIN из file, переводит запятую на новые строки и сортирует выходной файл; cut -d ':' -f 1 /etc/passwd | sort: печатает первое поле, разделенное двоеточиями, в каждой строке в /etc/passwd и сортирует выходной файл; И еще один способ использования combine (в пакете moreutils: sudo add-apt-repository universe && sudo apt-get update && sudo apt-get install moreutils), что позволяет сохранить пару команд sort (хотя, скорее всего, [ f19] все равно сортирует файлы):
combine <(cut -d ':' -f 1 /etc/passwd) NOT <(<file tr ',' '\n')
comm -13 <(<file tr ',' '\n' | sort) <(cut -d ':' -f 1 /etc/passwd | sort): сравнивает строки на выводах <file tr ',' '\n' | sort и cut -d ':' -f 1 /etc/passwd | sort и печатает только строки, уникальные для cut -d ':' -f 1 /etc/passwd | sort ; <file tr ',' '\n': читает STDIN из file и переводит запятые на новые строки; <file tr ',' '\n' | sort: читает STDIN из file, переводит запятые на новые строки и сортирует выходной файл;