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

Linux Bash目录复制脚本变量使用报错问题咨询

问题原因分析

你的报错完全是Bash变量赋值的语法错误导致的,具体拆解:

  1. ./run.sh: line 4: =: command not found 错误原因
    Bash里变量赋值的规则是等号两边不能有空格,如果你写了类似:

    SOURCE_DIR = "/home/admins/tryA"
    DEST_DIR = "/home/admins/tryB"
    

    这种写法会被Bash解析成:执行名为SOURCE_DIR的命令,参数是=和"/home/admins/tryA",但系统里根本没有SOURCE_DIR这个命令,所以就会报=: command not found的错误。

  2. cp: target '' is not a directory 错误原因
    因为前面的变量没正确赋值,SOURCE_DIR和DEST_DIR都是空字符串,所以你执行的cp命令实际是传递了空参数,Bash把最后的空字符串当成目标,自然会提示目标不是目录。

正确写法示例

把变量赋值的空格去掉即可,同时复制目录内容建议加递归参数-r,并用双引号包裹变量避免路径含空格时出错:

#!/bin/bash
SOURCE_DIR="/home/admins/tryA"
DEST_DIR="/home/admins/tryB"
cp -r "$SOURCE_DIR"/* "$DEST_DIR/"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 17:50:25