Вы можете напрямую EVAL
Это:
eval "$(grep -P '^\s*\w+=' config.sh)"
#quotes needed if you want the full content of the file (including newlines etc.)
Sourcing по существу так же, как:
eval "$(cat file)"
примечание, однако, что люди могут выполнять все Kinz Codez в Правая сторона равного знака:
a=$(evil_code_here)
b=`evil_code_here`
c="something" evil_code_here
#etc.
Вам нужен лучший фильтр.
-121--53107- У вас есть неtermined , если
цикла. Добавьте Fi
для этого , если
LOOP.
if [[ ($month == 9) && ($year == 1752) && ( $day -gt 2) && $day -le 14 ]]
После добавления Fi
, когда я запускаю скрипт, это то, что я получаю как вывод.
chkdate 1342 1 21
valid date
chkdate 13as 1 21
Usage: chkdate year month day
Вы можете сделать это так:
root@host# lastlog -b Num_Days_Since_Last_Login | egrep -v "^Username|Never logged in" | awk '{print $1}' | xargs -i userdel {}
Где num_days_since_last_login - это целое число дней с момента последнего входа в систему ...
Полное решение :
#!/bin/bash
maxdate=$(date -d "$1" +%s) || exit 1
daysdate=$((($(date +%s)-maxdate)/(3600*24)))
LANG=C lastlog -b $daysdate -u 1000- |
awk 'NR>1{print $1}' |
xargs -n1 echo userdel
Проверьте его и удалите echo
, чтобы сделать это forReal™.
Пример использования :
./script.sh 'Fri Dec 5 17:00:06 CET 2013'