You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shell脚本中rm无法删除外部配置文件定义的目录问题排查

脚本删除目录失败的成因分析

场景重现

需要运行test_shell.sh脚本,删除由test_config.txt配置文件中参数定义的目录:

  • test_config.txt 内容:
var = testdir
  • test_shell.sh 内容:
#!/bin/bash

vardel=$(grep var test_config.txt | cut -d ' ' -f3)
echo $vardel
rm -rf $var

当前脚本已正确获取到vardel变量的值(testdir),但目标目录未被删除,且无任何警告信息。

问题成因

脚本中变量引用错误:

  • 通过命令替换获取到的目录名存储在vardel变量中,但执行删除操作时却引用了未定义的$var变量。
  • 在Bash中,未定义的变量会被展开为空字符串,因此实际执行的命令是rm -rf(不带任何目标参数)。而rm -rf在没有参数时不会执行任何删除操作,也不会输出警告或错误信息,这就是目录未被删除且无提示的核心原因。

修复方法

将删除命令中的$var替换为正确的变量$vardel,同时建议用双引号包裹变量,避免目录名包含空格等特殊字符时出现问题:

rm -rf "$vardel"

内容的提问来源于stack exchange,提问作者silence_of_the_lambdas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 13:09:52