sh中执行cd语句报 不存在该文件或目录

本文介绍了一个在编写Shell脚本时遇到的问题:在Windows环境下使用UE编辑并直接上传到Unix环境中运行时出现路径错误的情况。文章详细解释了错误原因,并提供了解决方案——将文件从DOS格式转换为Unix格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在编写项目的打包发布脚本时遇到一个问题,在执行一个下面的shell脚本时报错。

       

#to install crmweb
cd /data/crm/crmweb/crmweb_branches/crmweb

mvn clean install -Dmaven.test.skip=true


报如下错:不存在该文件或目录 /data/crm/crmweb/crmweb_branches/crmweb,但在unix下执行输入命令 cd /data/crm/crmweb/crmweb_branches/crmweb 又是可以成功的,后来折腾后发现原来是因为sh我是用ue编写的,编写后就直接上传unix主机。

问题就出在我用UE编辑完后直接上传,是由于windows下的回车与unix下的不同,因此切记在windows下用UE编辑后需要进行下如下转换才可以:DOS 到 UNIX。



### 如何在麒麟V10操作系统中执行 `.sh` 文件 #### 使用 `desktop` 文件替代 `.sh` 脚本启动 一种方法是创建一个本地的 `.local` 文件来间接运行 `.sh` 脚本,这种方法适用于解决某些情况下 `.sh` 文件无法开机自启的问题。具体操作如下: - 创建一个新的文件命名为 `xxx.local` 并赋予其可执行权限。 - 编辑此文件并写入以下内容: ```bash #!/bin/sh cd /home/qilin/桌面/package/ ./xxx.sh exit 0 ``` 上述代码的作用是指定工作目录并通过调用目标脚本来实现功能[^1]。 #### 可视化终端授权后手动执行 对于一些特定场景下的软件包安装者初始化配置,可以直接利用可视化界面完成必要的环境准备后再通过命令行方式运行脚本。例如,在麒麟 V10 系统上可以通过图形化的终端工具输入以下指令完成静默模式下的程序部署: ```bash ./install.sh -silent ``` 这条语句通常用于自动化批量处理流程当中[^2]。 #### 设置计划任务定期触发 `.sh` 文件 如果希望某个`.sh`文件能够按照预定的时间表周期性被执行,则可以考虑将其加入到系统的cron服务去管理。以下是具体的实施步骤概述: 1. **赋予脚本执行权能** ```bash chmod +x 文件路径+文件名 ``` 2. **编辑当前用户的crontab文件** 输入下面这串字符开启编辑器修改个人专属的任务列表: ```bash crontab -e ``` 3. **定义新的调度条目** 在打开后的文档末尾追加一行描述何时以及怎样调用我们的shell script实例: ```bash * * * * * command_to_execute ``` 其中星号(*)分别代表分钟、小时、日期、月份还有星期几这些参数;而最后部分则是实际要发起的动作——即指向我们想要重复播放的那个外部应用程序的位置连同名称一起给出。比如每天凌晨零点整备份一次数据就可以这样安排: ```bash 0 0 * * * /path/to/your_script.sh ``` 这表示每晚午夜时分激活指定位置处保存着的相关逻辑运算过程[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值