我有一个上周未能完成的 shell 脚本;这是一个失败的“ cd
”命令,如果失败则退出。
该脚本是一个bash
用于配置新 Debian 安装的 shell 脚本。这是完整的脚本:debianConfigAswome.sh。该脚本以 root 身份运行,因此它具有对文件系统的完全访问权限。
您能否列出脚本无法成功执行cd
命令的所有原因以及如何避免该错误?
我有一个上周未能完成的 shell 脚本;这是一个失败的“ cd
”命令,如果失败则退出。
该脚本是一个bash
用于配置新 Debian 安装的 shell 脚本。这是完整的脚本:debianConfigAswome.sh。该脚本以 root 身份运行,因此它具有对文件系统的完全访问权限。
您能否列出脚本无法成功执行cd
命令的所有原因以及如何避免该错误?
cd
a可能失败的原因有多种。目标可能不存在,目标可能不是目录,您可能无权访问目标目录,cd
可能找不到(尽管这极不可能,因为它是内置的 shell),chdir()
操作可能由于损坏而失败文件系统等然而,在这种特殊情况下,它看起来像是脚本中的一个错误。您链接到的脚本有两个调用
cd
:和
我假设失败的是第一个,因为
cd $HOME
应该正常工作。这是脚本的相关(略微简化)部分:因此,如果
"$WORK_DIR"/nanorc
不是目录,则运行git
创建nanorc
目录的命令。第一个可能的问题是,nanorc
将在当前目录中创建可能不是$WORK_DIR
. 在您的脚本中此时,您实际上并没有移动到$WORK_DIR
,因此只有在您从内部运行脚本时它才应该工作$WORK_DIR
。所以简单的解决方案是在命令
cd $WORK_DIR
之前添加一个:git