1

我编写了一个小程序来获取目录中所有文件的列表并将它们连接到单个字符串变量。这是代码

#!/bin/bash
dir ="/home/user/myfolder/abc"
res=" "

for f in $( ls $dir  ); do
    res="$res $f"
done

echo $res

但是我收到以下错误

dir: cannot access =/home/user/myfolder/abc: No such file or directory

我已经设置了所有必需的权限,有什么解决方案?

4

2 回答 2

8

删除分配之间的空格:

#!/bin/bash
dir ="/home/user/myfolder/abc"

做这个:

#!/bin/bash
dir="/home/user/myfolder/abc"

left_value=right_value每种语言都有自己的语法,并且 bash 脚本在赋值期间不需要空格;如您所见,这只是语法问题。

于 2013-01-11T11:11:27.443 回答
3

您可能需要:

dir=/home/user/myfolder/abc

而不是

dir =“/home/user/myfolder/abc”

dir之后的额外空格使其成为命令“dir”,通常别名为ls

于 2013-01-11T11:13:22.903 回答