Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基本shell脚本expr命令不工作_Shell - Fatal编程技术网

基本shell脚本expr命令不工作

基本shell脚本expr命令不工作,shell,Shell,我正在尝试使用expr命令的一个非常简单的示例向变量添加一个数字。然而,每次我打印它时,我都会得到: 代码: MY=1 MY=expr$MY+1 //由于某种原因,当我把这两个背面的记号放在这里时,它们消失了 echo$MY 输出: 1+1 在这种情况下,为什么输出不是2?我已经确定这些是回勾,间距正确 另外,当我使用print而不是echo时,它显示print不存在 您应该在+周围添加空格。像这样: MY=`expr $MY + 1` 因为如果您错过了空间 $My+1 < /C>,shell

我正在尝试使用expr命令的一个非常简单的示例向变量添加一个数字。然而,每次我打印它时,我都会得到:

代码:

MY=1

MY=
expr$MY+1

//由于某种原因,当我把这两个背面的记号放在这里时,它们消失了

echo$MY

输出:

1+1

在这种情况下,为什么输出不是2?我已经确定这些是回勾,间距正确


另外,当我使用print而不是echo时,它显示print不存在

您应该在
+
周围添加空格。像这样:

MY=`expr $MY + 1`

因为如果您错过了空间<代码> $My+1 < /C>,shell将它视为字符串<代码>“1 + 1”< /代码>

您应该添加空间到<<代码> +<代码>。像这样:

MY=`expr $MY + 1`

因为如果你错过了空间<代码> $My+1 < /C>,shell会把它看作是字符串<代码>“1 + 1”< /Calp>

谢谢,工作了!而且,我刚刚意识到如果我不放#/bin/bash在开始时,为了让它意识到它是一个脚本,它仍然可以工作。知道为什么会这样吗?它总是有效的。如果您没有在开始时放入
“#!/bin/bash”
,程序将在您的计算机中使用“默认”shell。默认shell可能是
“/bin/sh”
。把
“#!/bin/bash”
放在shell中,您的shell会使用正确的
bash
而不是默认值吗谢谢,这很有效!而且,我刚刚意识到如果我不放#/bin/bash在开始时,为了让它意识到它是一个脚本,它仍然可以工作。知道为什么会这样吗?它总是有效的。如果您没有在开始时放入
“#!/bin/bash”
,程序将在您的计算机中使用“默认”shell。默认shell可能是
“/bin/sh”
。放置
“35;!/bin/bash”
shell会使用正确的
bash
而不是默认值吗