对于一项作业,我被要求巧妙地编写一个 bash 函数,该函数具有与函数cp(复制)相同的基本功能。它只需要将一个文件复制到另一个文件,因此无需将多个文件复制到一个新目录。
由于我是 bash 语言的新手,我不明白为什么我的程序不起作用。原始函数要求覆盖已经存在的文件,所以我尝试实现它。它失败。
该文件似乎在多行失败,但最重要的是在检查要复制到的文件是否已存在 ( [-e "$2"]) 的条件下。即便如此,如果满足该条件(文件名...),它仍会显示应该触发的消息。
谁能帮我修复这个文件,可能为我对语言的基本理解提供一些有用的见解?代码如下。
#!/bin/sh
echo "file variable: $2"
if [-e file]&> /dev/null
then
echo "The file name already exists, want to overwrite? (yes/no)"
read | tr "[A-Z]" "[a-z]"
if [$REPLY -eq "yes"] ; then
rm "$2"
echo $2 > "$2"
exit 0
else
exit 1
fi
else
cat $1 | $2
exit 0
fi
Run Code Online (Sandbox Code Playgroud)