Если вы понимаете язык программирования Си, то я думаю, что можно переписать исходный код rm и сделать небольшой патч для кернела. Я видел это на одном сервере, и было немыслимо удалять некоторые важные каталоги, и когда вы набираете 'rm -rf /direcotyr', он посылает письмо сисадмину.
В этой строке имеется (общая) синтаксическая ошибка (ОК, а не только одна...):
.[$year>1]
[
- это не специальный символ, а обычная команда. Таким образом, остальная часть строки - это параметры, которые должны быть разделены пробелами: ["$year" > 1 ]
Следующая проблема заключается в том, что >
- это не обычный параметр, а символ перенаправления (метахарактер). Таким образом, оболочка видит (например) [2014
и ищет команду с таким именем. Если бы она существовала, оболочка записала бы свой вывод в файл 1]
....
Если вы используете [ ... ]
, то вам нужен оператор -gt
(больше):
[ "$year" -gt 1 ]
Альтернативой является использование зарезервированного слова bash
[[
] вместо [
]. В качестве разделителя все равно нужно использовать пробелы, но можно опустить кавычки:
[[ $year -gt 1 ]]
или использовать арифметические выражения для сравнения целых чисел:
((year > 1))