gpt4 book ai didi

linux - 当我尝试运行从 Windows 系统编写的 Linux 脚本时出现 "No such file or directory"错误

转载 作者:太空宇宙 更新时间:2023-11-04 10:03:15 24 4
gpt4 key购买 nike

我在装有 Windows7 的 PC 上编写了一些脚本文件,然后将这些文件上传到远程 Linux 计算机。远程计算机上的系统是:

Debian 3.14.15-2 (2014-08-09) x86_64 GNU/Linux

通过 uname -a。使用 ls 命令,我看到文件已成功上传到预期目录:

xxx@ion:/mnt/backup/TIEGCM2/saturation_2.0$ ls
Apr_P_150_res5.0.job Apr_P_200_res5.0.job Apr_P_100_res5.0.job

这些文件是 C shell 脚本:

xxx@ion:/mnt/backup/TIEGCM2/saturation_2.0$ file Apr_P_200_res5.0.job
Apr_P_200_res5.0.job: C shell script, ASCII text executable, with CRLF line terminators

但是,当我使用 nohup 运行其中一个时,它会抛出错误“没有这样的文件或目录”:

xxx@ion:/mnt/backup/TIEGCM2/saturation_2.0$ nohup ./Apr_P_200_res5.0.job &
[3] 17065
xxx@ion:/mnt/backup/TIEGCM2/saturation_2.0$ nohup: ignoring input and appending output to 'nohup.out'
nohup: failed to run command './Apr_P_200_res5.0.job': No such file or directory

[3]+ Exit 127 nohup ./Apr_P_200_res5.0.job

文件当然存在,可以通过 ls 来证明。更奇怪的是,当我在Linux系统中直接用vi写脚本时,运行起来没有任何问题。当我在Linux下创建一个脚本文件,下载到我的Windows7 PC上,修改内容但保持文件名不变,然后上传到Linux;脚本文件将毫无问题地运行。但是,如果我在 Linux 中创建脚本文件,下载到我的 Windows7 PC,修改内容和文件名,然后上传到 Linux;脚本文件将拒绝运行并抛出“没有这样的文件或目录”错误。

怎么了?

最佳答案

输出中的以下行表明您的文件中有 dos 行结尾“CR - Carriage returns”。

with CRLF line terminators

尝试运行 cat -v your_file ,如果它在每一行的末尾显示 ^M 你需要在它们上运行 dos2unix ,例如 dos2unix your_file 将它们转换为 unix 格式

关于linux - 当我尝试运行从 Windows 系统编写的 Linux 脚本时出现 "No such file or directory"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54464483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com