【问题标题】:How to add multiple command insde single if loop in batch scripts如何在批处理脚本中添加多个命令 insde 单个 if 循环
【发布时间】:2020-02-12 08:20:26
【问题描述】:

你能告诉我这个while条件在linux中的含义吗?我必须把它转换成 bash

我想在批处理脚本的 if 条件中添加多个命令。 例子 如果文件存在 (复制一些文件,移动一些文件,重命名一些文件,回显一些东西) 别的做别的)

由于某种原因,我无法在 if 条件下添加多个命令

感谢任何帮助

以不同的方式尝试了不同的命令,但没有奏效

这只是一个示例代码,可能会让您了解我想要实现的目标

如果存在 C:\Users\admin\Desktop\TEST\dc.txt(回显“文件存在”超时 /t 10 复制 C:\Users\admin\Desktop\TEST\dc.txt C:\Users\admin \Desktop ) else ( echo"hello" copy C:\Users\admin\Desktop\TEST\test.txt C:\Users\admin\Desktop)

【问题讨论】:

  • of this while - 我在您的帖子中看不到 while 条件。您想到的是哪种情况? Example - 请格式化您的帖子。您可以在行尾添加两个空格来换行。 insde single if loop if 不是循环,而是条件语句。请修正您的帖子,使用以大写字母开头并以句号结尾的完整句子。

标签: bash


【解决方案1】:

if 语句以 fi 结束。您可以将elseelif []; then 分别用于else 和else-if。确保每个命令都在一个新行上,或者用分号分隔。

[ 也有一个手册页,其中解释了许多可用于 if 语句的选项。

#! /bin/bash
# usage $0 <filename>

file=$1 # First given argument, in your case "C:\Users\admin\Desktop\TEST\dc.txt"
RET=0

# -f = file exists
if [ -f "$file" ]; then
    # Copy also renames the file
    cp "$file" 'C:\Users\admin\Desktop\some_other_filename.txt'
else
    echo "File does not exist"
    RET=1
fi
exit ${RET}

您可以使用if [[ -f $file ]]; then 省略双引号,但我不使用windows 并且\ 可能会导致问题,因为它用于转义字符(即\n 用于换行符)。

此外,if 语句不能有空的主体。

【讨论】:

  • [[ 内,所有内容都被正确引用。 \n 将被解释为 \ 后跟 n
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-16
  • 2018-01-09
  • 1970-01-01
  • 2014-02-04
  • 1970-01-01
  • 2011-02-05
相关资源
最近更新 更多