Fedora下执行bash脚本提示文件不存在,请求技术排查解决
解决prepare.sh脚本中"build_env_list: No such file or directory"错误
问题详情
在Fedora系统的VSCode环境中运行prepare.sh脚本时遭遇错误:
preapare.sh: line 6: /home/lld/LLD_linux_dist/build_env/build_env_list: No such file or directory
相关脚本代码:
echo "Dist Root: ${DIST_ROOT:?}" echo "LFS: ${LFS:?}" mkdir -p $LFS/sources for f in $($DIST_ROOT/build_env/build_env_list) do echo $f done;
修复方案
1. 确认文件存在性与路径正确性
首先在终端执行以下命令,检查目标路径下是否存在build_env_list文件:
ls -l /home/lld/LLD_linux_dist/build_env/
- 如果文件不存在:需要创建该文件(它应为包含待处理条目的文本列表,或是可执行脚本)。
- 如果路径/文件名有误:仔细核对拼写(比如报错中的
stroke是line的笔误,需排查路径是否存在类似拼写错误)。
2. 验证环境变量DIST_ROOT
脚本中${DIST_ROOT:?}确保变量已设置,但需确认其值是否正确指向目标目录:
echo $DIST_ROOT
若变量值不正确,在脚本开头添加变量定义:
export DIST_ROOT="/home/lld/LLD_linux_dist"
如果build_env_list是可执行脚本,需为其添加执行权限:
chmod +x $DIST_ROOT/build_env/build_env_list
3. 修正列表读取逻辑(针对文本列表文件)
若build_env_list是普通文本列表(每行一个条目),当前for循环会按空格拆分内容,改为逐行读取的写法更可靠:
while IFS= read -r f do echo "$f" done < "$DIST_ROOT/build_env/build_env_list"
内容的提问来源于stack exchange,提问作者Game Boy
相关产品推荐
相关产品推荐

