process.write("echo 98 > /sys/class/gpio/export;echo high > /sys/class/gpio/gpio98/direction;echo 99 > /sys/class/gpio/export;cat /sys/class/gpio/gpio99/value\n");为什么这个语句执行了两遍
时间: 2023-08-01 18:11:00 浏览: 78
根据你提供的信息,我猜测这段代码是在 Node.js 中使用 child_process 模块执行的,其中 process 是 child_process 模块提供的一个全局对象。如果你多次调用 process.write 方法,那么每次调用都会向子进程的标准输入写入数据。因此,如果你执行了多次 process.write 方法,那么子进程就会接收到多个相同的命令并执行多次。如果你只想执行一次命令,可以将这段代码放在一个函数中,然后只调用一次该函数。
相关问题
process.start("cmd.exe",args); process.waitForStarted(); process.write("echo 98 > /sys/class/gpio/export;echo high > /sys/class/gpio/gpio98/direction;echo 99 > /sys/class/gpio/export;cat /sys/class/gpio/gpio99/value\n");代码中process.write为什么会执行两遍,如何制止
根据你提供的信息,我看到这段代码是在 Qt 中使用 QProcess 类执行的,其中 process 是 QProcess 类的一个实例对象。如果你多次调用 process.write 方法,那么每次调用都会向子进程的标准输入写入数据。因此,如果你执行了多次 process.write 方法,那么子进程就会接收到多个相同的命令并执行多次。如果你只想执行一次命令,可以将这段代码放在一个函数中,然后只调用一次该函数。
另外,如果你想要确保 process.write 方法只会执行一次,可以使用信号与槽机制。例如,在调用 process.waitForStarted 方法之前,可以连接 QProcess 类的 finished 信号到一个槽函数上,在槽函数中调用 process.write 方法,这样就可以确保 process.write 方法只会在子进程执行完成后执行一次。
"echo 97 > /sys/class/gpio/export;echo 98 > /sys/class/gpio/export;echo high > /sys/class/gpio/gpio97/direction;echo in > /sys/class/gpio/gpio98/direction;cat /sys/class/gpio/gpio98/value;echo low > /sys/class/gpio/gpio97/direction;cat /sys/class/gpio/gpio98/value\r\r\n# echo 97 > /sys/class/gpio/export;echo 98 > /sys/class/gpio/export;echo high > \r\r\r\n/sys/class/gpio/gpio97/direction;echo in > /sys/class/gpio/gpio98/direction;cat \r\r\r\n/sys/class/gpio/gpio98/value;echo low > /sys/class/gpio/gpio97/direction;cat /sy\r\r\r\ns/class/gpio/gpio98/value\r\r\nsh: write error: Device or resource busy\r\r\nsh: write error: Device or resource busy\r\r\n1\r\r\n0\r\r\n# "为何此字符串倒数第六个是0
对于这个字符串,我们可以将其每个字符的下标表示出来:
```
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
e c h o 9 7 > / s y s / c l a s s / g p i o / e x p o r t ; e c h o 9 8 > / s y s / c l a s s / g p i o / e x p o r t ; e c h o h i g h > / s y s / c l a s s / g p i o / g p i o 9 7 / d i r e c t i o n ; e c h o i n > / s y s / c l a s s / g p i o / g p i o 9 8 / d i r e c t i o n ; c a t / s y s / c l a s s / g p i o / g p i o 9 8 / v a l u e ; e c h o l o w > / s y s / c l a s s / g p i o / g p i o 9 7 / d i r e c t i o n ; c a t / s y s / c l a s s / g p i o / g p i o 9 8 / v a l u e \r \r \n # e c h o 9 7 > / s y s / c l a s s / g p i o / e x p o r t ; e c h o 9 8 > / s y s / c l a s s / g p i o / e x p o r t ; e c h o h i g h > \r \r \r \n / s y s / c l a s s / g p i o / g p i o 9 7 / d i r e c t i o n ; e c h o i n > / s y s / c l a s s / g p i o / g p i o 9 8 / d i r e c t i o n ; c a t \r \r \r \n / s y s / c l a s s / g p i o / g p i o 9 8 / v a l u e ; e c h o l o w > / s y s / c l a s s / g p i o / g p i o 9 7 / d i r e c t i o n ; c a t / s y
```
可以看出,该字符串的倒数第六个字符是 `0`。
具体来说,该字符串的最后部分是:
```
1\r\r\n0\r\r\n#
```
其中,倒数第六个字符是 `0`。
阅读全文