python이 처음 사용되었습니다. 정의 된 함수와 인수를 사용하고 if/then 형식의 값을 반환하는 cmd를 사용하여 대화 형 셸에서 작업하고 있습니다. 아래 예. 하지만 내 문제는 사용자가 함수를 입력 할 때마다 사용자에게 무엇인가를 반환 할 때마다 Enter 키를 누르면 마지막으로 제공된 출력을 받는다는 것입니다.python 대화 형 셸 형식의 인수가없는 cmd 반복문 사용
아래 예제 코드에서 ...하지만 기본적으로 사용자가 인수 나 함수를 입력하지 않으면 그냥 아무 것도 표시되지 않거나 빈 공간 만 있으면됩니다. 나는 else pass 인수가 나를 위해 그것을했을 것이라고 생각했다. 그러나 분명히 그렇지 않았다. 나는 같은 결과로 if와 elif를 시도했다.
[email protected]>test arp
? (192.168.50.1) at 0:26:88:38:c6:48 on en0 ifscope [ethernet]
? (192.168.50.255) at ff:ff:ff:ff:ff:ff on en0 ifscope [ethernet]
> **<enter key>**
? (192.168.50.1) at 0:26:88:38:c6:48 on en0 ifscope [ethernet]
? (192.168.50.255) at ff:ff:ff:ff:ff:ff on en0 ifscope [ethernet]
> **<enter key>**
예제 코드 : "시험 ARP"와
예 출력, 그냥 리턴을 누르면 이전 인수 입력 타격! #을은/usr/빈/ENV 파이썬
from cmd import Cmd
from time import ctime
import csv, os, subprocess, getpass, socket, pwd, re, select, shutil, subprocess, sys
syntaxError = "Sorry that syntax isn't quite right..."
class cliPrompt(Cmd):
def do_test(self, args):
if len(args) == 0:
print syntaxError
if args == '?':
print 'want to read the help?'
if args == 'arp':
subprocess.call('arp -an', shell=True)
if args == 'cpu':
subprocess.call('grep "model name" /proc/cpuinfo', shell=True)
if args == 'firewall':
subprocess.call('iptables -L -v -n --line-numbers', shell=True)
if args == 'interfaces':
subprocess.call('ifconfig', shell=True)
else:
pass
if __name__ == '__main__':
prompt = cliPrompt()
prompt.prompt = '>'
prompt.cmdloop()
일반적으로 Geez는 cmd 모듈 설명서를 읽는 데 도움이됩니다. 승리를 위해! def emptyline (자기) : 패스 –