Fastlane 注释掉字符串中的引号

Posted

技术标签:

【中文标题】Fastlane 注释掉字符串中的引号【英文标题】:Fastlane comment out quotes in string 【发布时间】:2018-12-06 15:34:07 【问题描述】:

我正在尝试使用 ruby​​ shell 执行显示连接到 mac 的 ios 设备。

system_profiler SPUSBDataType | grep -A 11 -w "iPad\|iPhone\|iPad"

在终端中输出正常。

如何正确转义字符并在 ruby​​ 控制台中运行它

但是,当使用我的 Fastfile 的通道添加相同的内容时,请注意使用“\”的转义引号。我收到非零退出错误。

desc "Register a new device"
  lane :register_new_device do
      UI.message("Detected device")
      sh("system_profiler SPUSBDataType | grep -A 11 -w \"iPad\|iPhone\|iPad\"")
      device_name = prompt(text: "Enter the device name: ")
      device_udid = prompt(text: "Enter the device UDID: ")
      device_hash = 
      device_hash[device_name] = device_udid
      register_devices(devices: device_hash)
      new_devices
  end

错误:

[08:23:56]: Exit status of command 'system_profiler SPUSBDataType | grep -A 11 -w "iPad|iPhone|iPad"' was 1 instead of 0.
2018-12-07 08:23:55.602 system_profiler[21056:476660] SPUSBDevice: IOCreatePlugInInterfaceForService failed 0xe00002be

预期输出:

2018-12-07 08:27:52.170 system_profiler[21266:479375] SPUSBDevice: IOCreatePlugInInterfaceForService failed xx
        iPhone:

          Product ID: xx
          Vendor ID: xx (Apple Inc.)
          Version: xx
          Serial Number: xxx
          Speed: Up to 480 Mb/sec
          Manufacturer: Apple Inc.
          Location ID: xx / 3
          Current Available (mA): xx
          Current Required (mA): xx
          Extra Operating Current (mA): xx

如何在用户将设备添加到 Fastlane 匹配之前在 shell 中运行命令并显示输出?

【问题讨论】:

该 shell 命令返回什么/应该返回什么?返回非零退出究竟是什么? sh() 操作执行的命令? 它应该只是在控制台上打印一些东西,纠正这一行导致问题 -> sh("system_profiler SPUSBDataType | grep -A 11 -w \"iPad\|iPhone\|iPad\"" ) 您能否将运行此通道的输出添加到您的问题中? 错误信息添加到问题中 【参考方案1】:

您正在运行的命令似乎总是返回状态代码1 而不是0,即使直接运行它也是如此。完成后运行echo $? 进行检查。

如果确实是这种情况并且是预期或想要的,您必须让 fastlane 的 sh 接受这一点。你可以通过给sh 一个error_callback parameter 来做到这一点,如果状态为1,它将被执行。它实际上不需要做任何事情,所以一个空方法应该没问题。

(这背后的内部逻辑和代码是here - 注意错误消息是如何输出的存在。)

【讨论】:

以上是关于Fastlane 注释掉字符串中的引号的主要内容,如果未能解决你的问题,请参考以下文章

如何在Python中注释掉一段代码[重复]

字符串

Python-注释和字符串

7-1 基本数据类型 运算符 输入输出 注释

python基础第二天(day14)

shell中的   中文和英文   双引号