這個提示用意很好,但是在做自動化安裝時我們常常需要的是不需人工介入
因此就這好意就變成了困擾
在網路上找了一堆作法,經過測試後只有以下的作法才有用
先設定環境變數
export DEBIAN_FRONTEND=noninteractive接著使用以下的指令做安裝軟體(${pkg_name}請填上您的軟體名稱)
apt-get -y -q install ${pkg_name}
export DEBIAN_FRONTEND=noninteractive接著使用以下的指令做安裝軟體(${pkg_name}請填上您的軟體名稱)
apt-get -y -q install ${pkg_name}
sudo apt-get -y install x11vnc
x11vnc -auth /var/run/lightdm/root/:0 -display :0 -forever &PS. 如果需設定桌面小大,可以再加上"-geometry 1024x768"的參數
#!/usr/bin/env python
import re
import string
import timeit
data_list = ['A1213pokl', 'bAse730onE', 'asasasasasasasaas', 'QWERTYqwerty', '123456123456', 'QwErTy911poqqqq']
def method1():
global data_list
for str in data_list:
if len(str) >= 10 and re.match('.*([0-9]){1,}.*', str) and re.match('.*([a-z]){1,}.*', str) and re.match('.*([A-Z]){1,}.*', str):
pass
else:
pass
return True
def method2():
global data_list
for str in data_list:
if len(str) >= 10 and filter(lambda a:a.isupper(), str) and filter(lambda a:a.islower(), str) and filter(lambda a:a.isdigit(), str):
pass
else:
pass
return True
def method3():
global data_list
for str in data_list:
digit = upper = lower = False
if len(str) < 10:
pass
else:
for s in str:
if s in string.ascii_lowercase:
lower = True
if s in string.ascii_uppercase:
upper = True
if s in string.digits:
digit = True
if lower and upper and digit:
pass
else:
pass
return True
def method4():
global data_list
expr = re.compile("^.*(?=.{10,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*$")
for str in data_list:
bool(expr.findall(str))
return True
def method5():
global data_list
for str in data_list:
bool(re.match('((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{10})', str))
return True
def method6():
global data_list
expr = re.compile('((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{10})')
for str in data_list:
bool(expr.match(str))
return True
t = timeit.Timer(method1)
print "method1", t.timeit()
t = timeit.Timer(method2)
print "method2", t.timeit()
t = timeit.Timer(method3)
print "method3", t.timeit()
t = timeit.Timer(method4)
print "method4", t.timeit()
t = timeit.Timer(method5)
print "method5", t.timeit()
t = timeit.Timer(method6)
print "method6", t.timeit()
測試出來的結果