关于python:传递由用户设置的变量作为os.system()命令的参数

Passing a variable, set by the user, as a parameter for a os.system() command

好吧,所以基本上我对python比较陌生,但是,我想为我在工作中使用的所有基本工具制作一个简单的菜单系统,到目前为止我的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import os
def main():
    print"Main Menu.
"

    print"1. Ping yourself.
"

    print"2. Ping someone else.
"

    opt = raw_input ("Please enter a number:-")
    if opt =="1":
            os.system('ping 127.0.0.1')
    if opt =="2":
            ip = raw_input ("Please enter IP:-")
            os.system('ping'.ip)

main()

现在,一切都很好,但是我似乎被困在这条线上:

1
os.system('ping'.ip)

因为我想在命令中使用第10行的变量。希望这是一个简单的解决办法。

谢谢,

罗斯。


您需要一个空格,字符串连接运算符是+,而不是.

1
os.system("ping" + ip)

还可以使用字符串格式:

1
os.system("ping %s" % ip)


在命令和参数之间需要一个空格。


一旦你让它正常工作,如果用户输入:

1
127.0.0.1; rm -rf /