Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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
Can';不要运行简单的bash脚本_Bash - Fatal编程技术网

Can';不要运行简单的bash脚本

Can';不要运行简单的bash脚本,bash,Bash,我试着这样做 #!/bin/bash ${postid=41930} while ${postid} < 42000; do `node title.js ${postid}` ${postid} = ${postid} +1; done 来自曼什 while *list*;do *list*;done sh version 3.2 也许,你想要 for((postid=41930;postid<42000;++postid)) do node title.js $po

我试着这样做

#!/bin/bash
${postid=41930}
while ${postid} < 42000;
do
 `node title.js ${postid}`
  ${postid} = ${postid} +1;
done
来自曼什

while *list*;do *list*;done

sh version 3.2
也许,你想要

for((postid=41930;postid<42000;++postid)) do
 node title.js $postid
done
for((postid=41930;postid可能,您需要

for((postid=41930;postid<42000;++postid)) do
 node title.js $postid
done

for((postid=41930;postid另一种仅使用bash功能的快捷方式是:

#!/bin/env bash
for postid in {41930..41999} ; do node title.js ${postid} ; done

参考资料:

另一种仅使用bash功能的快速方法是:

#!/bin/env bash
for postid in {41930..41999} ; do node title.js ${postid} ; done

参考资料:

其他答案可能是您想要使用的。仅供参考,以下是您的错误来源

${postid=41930}
要将41930分配给
posted
,只需使用
postid=41930
。注意等号周围没有空格

while ${postid} < 42000;
为了给变量赋值,bash不允许在等号周围使用空格。对于空格,它通过展开
$postid
并将其视为要运行的命令来解释此行,并将
=
作为第一个参数。使用
postid=$postid+1;
。在左侧,由于不展开,因此不需要美元符号变量的值,但分配给名称。在右侧,您需要美元符号来获取发布的
的值

done

其他答案可能是您想要使用的。仅供参考,以下是您的错误来源

${postid=41930}
要将41930分配给
posted
,只需使用
postid=41930
。注意等号周围没有空格

while ${postid} < 42000;
为了给变量赋值,bash不允许在等号周围使用空格。对于空格,它通过展开
$postid
并将其视为要运行的命令来解释此行,并将
=
作为第一个参数。使用
postid=$postid+1;
。在左侧,由于不展开,因此不需要美元符号变量的值,但分配给名称。在右侧,您需要美元符号来获取发布的
的值

done

脚本中有几个地方需要修复:

  • 正如切普纳所说,您不能将值赋给像
    ${postid}
    这样的计算结果,而是直接在赋值的左侧使用
    postid

  • 脚本中应该有一些不可见的字符。请尝试运行
    dos2unix myscript.sh
    或手动将以下代码键入新文件

    • 很抱歉,我无法正确设置代码格式,请查看

    脚本中有几个地方需要修复:

  • 正如切普纳所说,您不能将值赋给像
    ${postid}
    这样的计算结果,而是直接在赋值的左侧使用
    postid

  • 脚本中应该有一些不可见的字符。请尝试运行
    dos2unix myscript.sh
    或手动将以下代码键入新文件

    • 很抱歉,我无法正确设置代码格式,请查看

    #!/bin/bash for((postid=41930;postid@v.tsurka,问题被标记为
    bash
    ,而不是
    sh
    。!/bin/bash((postid=41930;postid@v.tsurka,问题被标记为
    bash
    ,而不是
    sh
    。bc-c8-d8-eb-65:googlecache macbookpro$sh run.sh run.sh:第3行:语法错误:意外的文件结尾除非文件中有隐藏字符,否则我不知道是怎么回事。你手动键入代码了吗?我很惊讶你必须在第一个pl中这样做ace。如果文件是在您的Mac上创建的,它应该可以开箱即用。或者文件最初来自其他编辑器?或者您是从其他地方复制了一个.vimrc?这可以解释问题。无论如何,我很高兴您发现了您的问题:)bc-c8-d8-eb-65:googlecache macbookpro$sh run.sh run.sh:第3行:语法错误:文件意外结束除非文件中有隐藏字符,否则我不知道是怎么回事。你手动键入代码了吗?我很惊讶你一开始就必须这么做。如果文件是在Mac上创建的,它应该可以开箱即用。或者文件是originally来自另一个编辑器?或者你是从其他地方复制了一个.vimrc吗?这可以解释问题。无论如何,我很高兴你发现了你的问题:)非常感谢你的解决方案。我必须使用vi:set ff=unix。并且知道所有方法都有效!!!非常感谢你的解决方案。我必须使用vi:set ff=unix。并且知道所有方法都有效!!!