Просто нужно окружить все это соответствующими проверками ошибок:
FNDIR=~/.bash_functions
if [ -d $FNDIR ]
then
for f in $FNDIR/*.sh
do
test -x $f && source $f
done
fi
Я намеренно не цитирую здесь значения, потому что предполагаю, что у вас не будет домашнего каталога или имени сценария с пробелами. Похоже, что это выходит за рамки надежности и защиты от злого умысла. Поскольку это сценарии, которые вы пишете для себя, я не думаю, что нам нужно заходить так далеко. :)
Вот так:
$ uniq inputFile > outputFile
Но обратите внимание, что uniq
удаляет только те повторяющиеся строки, которые идут друг за другом и последовательно. Поэтому если вы хотите удалить все повторяющиеся строки, даже те, которые не идут последовательно, вы можете сначала отсортировать
ваш входной файл, а затем использовать опцию uniq
:
$ sort -g inputFile | uniq > outputFile
-g
, которая будет сравнивать в соответствии с общим числовым значением.
Или просто используйте sort -nu inputFile > outputFile
Сортировка нужна, если вы хотите удалить дубликаты, которые еще не находятся в последовательных строках, например:
cat FILE1 | sort -nu > FILE2
sort -n
означает числовую сортировку, а -u
удаляет последовательные дубликаты строк (как это делает отдельная команда uniq
для отсортированных файлов/данных).