【发布时间】:2021-05-25 15:30:29
【问题描述】:
一般来说,我是 linux 和 shell 脚本的新手。我在 WSL(Linux 的 Windows 子系统)上使用 Debian 发行版。我正在尝试编写一个非常简单的 bash 脚本,它将执行以下操作:
- 在目录(子目录-a)中创建文件
- 移动到它所在的目录
- 将文件移动到另一个目录(子目录-b)
- 移至该目录
- 将文件移至父目录
这就是我目前所拥有的(现在尽量让事情变得非常简单)
touch child-directory-a/test.txt
cd child-directory-a
mv child-directory-a/test.txt home/username/child-directory-b
前两行有效,但最后一行出现“不存在这样的目录”错误。该目录存在并且是正确的路径(使用 pwd 检查)。我也尝试过使用不同的路径(即 child-directory-b、username/child-directory-b 等)但无济于事。我不明白为什么它不起作用。
我查看了论坛/文档,似乎这些命令应该像在命令行中一样工作,但我似乎无法在脚本中做同样的事情。
如果有人能解释我缺少/不理解的内容,那就太好了。
谢谢。
【问题讨论】:
-
在第三行,您可能希望在
home前面加上/:/home/username/child-directory-b。你也可以使用特殊的环境变量$HOME:mv child-directory-a/test.txt "$HOME/child-directory-b/"