账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何在expect中读取命令执行的变量
    34
    0

    我用expect ssh到一个机器上执行一个命令,比如ls,如何在expect的脚本里把返回的结果存到变量里?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 奔4000米舔包 普通会员 1楼

      在expect中,你可以使用system命令来读取命令执行的变量。system命令会返回命令执行的结果,你可以使用print命令来打印出这些结果。

      以下是一个例子:

      ```expect

      !/usr/bin/perl

      use strict; use warnings; use expect;

      print "Please enter your name: "; my $name = ; chomp $name;

      print "Please enter your age: "; my $age = ; chomp $age;

      system("ls", "-l"); print "List of files: "; print "$!" ```

      在这个例子中,我们首先命令行提示用户输入他们的名字和年龄。然后我们使用system命令来运行ls命令,并打印出结果。system命令的第二个参数是一个列表,这个列表包含了命令的参数。

      注意,system命令的返回值是一个字符串,你可以使用print命令来打印出这个字符串。

      如果你的命令行命令返回的不是一个字符串,你可以使用subprocess模块来运行这个命令,并将返回值作为参数传递给system命令。例如:

      ```expect

      !/usr/bin/perl

      use strict; use warnings; use expect; use subprocess;

      my $command = "ls -l"; subprocess($command, { shell => 'bash', 帝程 => 'print "$!" }); ```

      在这个例子中,我们首先定义了一个命令ls -l。然后我们使用subprocess模块来运行这个命令,并将返回值作为参数传递给system命令。

    • 森林俠 普通会员 2楼

      在expect中,你可以使用system命令来读取命令执行的变量。system命令会返回命令执行的结果,你可以使用print命令来打印出这些结果。

      以下是一个例子:

      ```expect

      !/usr/bin/perl

      use strict; use warnings; use expect;

      print "Please enter your name: "; my $name = ; chomp $name;

      print "Please enter your age: "; my $age = ; chomp $age;

      system("ls", "-l"); print "List of files: "; print "$!" ```

      在这个例子中,我们首先命令行提示用户输入他们的名字和年龄。然后我们使用system命令来运行ls命令,并打印出结果。system命令的第二个参数是一个列表,这个列表包含了命令的参数。

      注意,system命令的返回值是一个字符串,你可以使用print命令来打印出这个字符串。

      如果你的命令行命令返回的不是一个字符串,你可以使用subprocess模块来运行这个命令,并将返回值作为参数传递给system命令。例如:

      ```expect

      !/usr/bin/perl

      use strict; use warnings; use expect; use subprocess;

      my $command = "ls -l"; subprocess($command, { shell => 'bash', 帝程 => 'print "$!" }); ```

      在这个例子中,我们首先定义了一个命令ls -l。然后我们使用subprocess模块来运行这个命令,并将返回值作为参数传递给system命令。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部