Пожалуйста, смотрите следующую функцию -
function touchm(){
date=$(date +'%Y-%m-%d %H:%M:%S')
read Y M D h m s <<< ${date//[-: ]/ }
file_name=$1
if [[ $file_name =~ ^[0-9a-zA-Z+_-]+.[py|pl|rb|sh] ]]; then
echo "#
# $file_name
#
# Created by $MASTER on $M/$D/$Y at $h:$m:$s
# Copyright (c) $Y $MASTER. All rights reserved.
#
" > $1
elif [[ $file_name =~ ^[0-9a-zA-Z+_-]+.[m|h|c|cpp|] ]]; then
echo "//
// $file_name
//
// Created by $MASTER on $M/$D/$Y at $h:$m:$s
// Copyright (c) $Y $MASTER. All rights reserved.
//
" > $1
elif [[ $file_name =~ ^[0-9a-zA-Z+_-]+.[ml] ]]; then
echo "(* *)
(* $file_name *)
(* *)
(* Created by $MASTER on $M/$D/$Y at $h:$m:$s *)
(* Copyright (c) $Y $MASTER. All rights reserved. *)
(* *)
" > $1
else
echo "What bullshit. Give me a good file name"
fi
}
поэтому всякий раз, когда я выполняю:
touchm 2-r_f.ml
это должно сгенерировать файл ml с комментариями типа ml. Но это не так. Он генерирует комментарии типа c.
Более того, мне нужно учесть и +, и _ (подчеркивание), но в настоящее время это, похоже, не работает. Это плохое регулярное выражение? Если да, могу ли я получить указатели, чтобы исправить это?
Спасибо