【问题标题】:Bash script for-loop with nested if-statement带有嵌套 if 语句的 Bash 脚本 for 循环
【发布时间】:2016-04-26 16:24:43
【问题描述】:

在我的 bash 脚本中,我提示用户输入所需的目录,然后遍历该目录中的文件以对名称与某个字符串匹配的文件运行命令。这是一个带有嵌套 if 语句的 for 循环,无论我根据在语法指南和堆栈溢出中找到的其他示例以哪种方式进行更改,我都会不断收到语法或权限错误。

process_files(){
  for i in /home/path/*
  do
    if $i == "string"
    then
        <command>
    fi
  done
}
process_files

【问题讨论】:

  • if $i == "string" 是无效的 shell 语法。
  • 我们鼓励您显示错误,并告诉我们预期的结果。理想情况下,示例应该按原样运行。

标签: bash for-loop


【解决方案1】:

试试

if [ "$i" = "string" ]
then

...

【讨论】:

    【解决方案2】:

    如果要在一行中执行 bash,则需要使用 ;。例如,如果 $i == "string";然后回显“字符串”;菲。对于 for 循环也是如此。

    【讨论】:

    • 这回答了一个在没有真正确定问题的情况下没有被问到的问题。
    • 在 OP 的原始帖子中,这是一个问题。
    • 不,这只是帖子中的格式问题。
    • 好吧,至少不是我的问题。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多