在下面的示例中:
“异或”操作符在shell中的预期行为是什么?
因此,当我们输入
w ^ ls
“异或”操作符在shell中的预期行为是什么?
因此,当我们输入
command ^ anothercommand
如果执行的话,是什么触发anothercommand
运行?
w ^ ls
command ^ anothercommand
如果执行的话,是什么触发anothercommand
运行?
man bash
中所看到的那样,^
并不用于分隔命令,而是用于算术表达式中。$ echo $(( 5 ^ 9 ))
12
这是因为
dec bin
5 0101
9 1001
-----------
12 1100
w % id
或 w +-+ id
或其他任何方式。没有名为 ^
的用户,所以你只会得到标题。在bash中没有用于命令的 ^
运算符。 - choroba^
是一个历史扩展操作符。尝试输入 echo foo
,然后输入 ^foo^bar
。 - chepnercommand ^ anothercommand
,那么你只是为 command
提供了两个参数:^
和anothercommand
。这里没有运算符。 只有当command
将那个参数视为命令名称并尝试运行它时,anothercommand
才会运行。echo ^
- choroba
&&
或||
这样的运算符,它必须运行两个命令,因为 XOR 的值由其两个操作数决定(它不会短路)。如果一个命令失败而另一个成功,则结果退出状态将为 0,否则为 1。我真的想象不出这会有什么有用的场景。 - chepner