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

Bash脚本通过用户传入参数创建新目录时出现mkdir报错如何解决

问题原因

你的报错*mkdir: cannot create directory "": No such file or directory*是因为脚本中的$folder变量未被赋值,运行时是空值,相当于调用mkdir ""创建空名称的目录,不符合系统规则。
你当前的代码没有接收用户传入的脚本参数的逻辑,Bash 中传入脚本的第一个参数对应内置变量$1,第二个对应$2,以此类推,需要手动赋值给你定义的变量。

修正方案

  1. 脚本开头添加参数赋值逻辑,把你传入的第一个参数赋值给folder变量
  2. 可以新增参数非空校验,避免用户未传参数时运行出错

修正后的完整代码如下:

# 将传入的第一个参数赋值给folder变量
folder="$1"

# 新增参数非空校验
if [ -z "$folder" ];then
    echo "错误:请传入要创建的文件夹名称作为参数"
    echo "使用示例:bash $0 目标文件夹名"
    exit 1
fi

echo $folder 

if [ ! -d "$folder" ];
then
    mkdir -p "$folder"
fi

运行方式

假设你把脚本保存为create_dir.sh,添加执行权限后运行即可:

  • 加执行权限:chmod +x create_dir.sh
  • 运行创建文件夹:./create_dir.sh 你要创建的文件夹名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:57:03