我编写了一个小程序来获取目录中所有文件的列表,并将它们连接到单个字符串变量。这是代码
#!/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
我已经设置了所有必需的权限,解决方案是什么?
答案 0 :(得分:4)
删除作业之间的空格:
#!/bin/bash
dir ="/home/user/myfolder/abc"
这样做:
#!/bin/bash
dir="/home/user/myfolder/abc"
每种语言都有自己的语法,bash脚本在分配期间left_value=right_value
之间不需要空格;如你所见,这只是语法问题。
答案 1 :(得分:3)
可能你需要:
dir=/home/user/myfolder/abc
而不是
dir ="/home/user/myfolder/abc"
dir 之后的额外空格使其成为命令“dir”,通常别名为 ls 。