support other shell