在访问目录及其文件时出现的Bash代码问题

11 浏览
0 Comments

在访问目录及其文件时出现的Bash代码问题

我是bash的新手,在使用在线bash编译器时,我尝试在循环中访问每个目录和其中的文件。但每次都显示目录不存在。在像replit这样的在线bash编译器中,创建和访问目录的正确语法是什么?

#!/bin/bash
for I in new, new1
  do
    cp /fileName $1
  done
输出:
cp:无法访问'fileName':没有那个文件或目录
cp:无法访问'fileName':没有那个文件或目录

0
0 Comments

在这个问题中,出现了两个错误。首先,在fileName前面加上了/,所以它期望在根目录(操作系统的根目录)中有一个文件,而不是相对于程序运行位置的文件,而是一个在/fileName位置的文件。其次,你使用了$I作为循环变量,但后来尝试引用$1,它们应该是相同的。

你几乎肯定想要使用如下形式的代码:

for path in new new1; do
   cp fileName "$path/"
done

为了解决这个问题,你需要删除/,并将$I改为$1。修改后的代码如下:

for path in new new1; do
   cp fileName "$1/"
done

0