【问题标题】:Ubuntu shell script: Using >> the output txt file is not openingUbuntu shell 脚本:使用 >> 输出 txt 文件未打开
【发布时间】:2017-08-09 08:42:00
【问题描述】:

我使用以下python 脚本来创建shell 脚本:

with open("decode_JOURNAL2017.sh", "a") as myfile:
    levels_no = 16
    #myfile.write("#!/bin/bash\n")
    for x in range(0, levels_no):
        myfile.write("/home/zinonas/SHM-12.3/bin/TAppDecoderStatic -b /home/zinonas/str/pirkagia_10b_lowdelay_P.bin -olsidx "+str(x)+" -o"+str(x)+" /home/zinonas/decode/pirkagia_10b_lowdelay_P_level_"+str(x)+"_dec.yuv >> /home/zinonas/decode/pirkagia_10b_lowdelay_P_level_"+str(x)+"_dec.txt\n")

然后我将以下创建的脚本传输到ubuntu 服务器:

/home/zinonas/SHM-12.3/bin/TAppDecoderStatic -b /home/zinonas/str/pirkagia_10b_lowdelay_P.bin -olsidx 0 -o0 /home/zinonas/decode/pirkagia_10b_lowdelay_P_level_0_dec.yuv >> /home/zinonas/decode/pirkagia_10b_lowdelay_P_level_0_dec.txt
/home/zinonas/SHM-12.3/bin/TAppDecoderStatic -b /home/zinonas/str/pirkagia_10b_lowdelay_P.bin -olsidx 1 -o1 /home/zinonas/decode/pirkagia_10b_lowdelay_P_level_1_dec.yuv >> /home/zinonas/decode/pirkagia_10b_lowdelay_P_level_1_dec.txt
/home/zinonas/SHM-12.3/bin/TAppDecoderStatic -b /home/zinonas/str/pirkagia_10b_lowdelay_P.bin -olsidx 2 -o2 /home/zinonas/decode/pirkagia_10b_lowdelay_P_level_2_dec.yuv >> /home/zinonas/decode/pirkagia_10b_lowdelay_P_level_2_dec.txt

当我运行它时,会创建 txt 文件,但是当我双击打开它时,我会收到以下消息:

Can't create file 'C:\Users\admin\AppData\Local\Temp\scp43940\home\zinonas\decode\pirkagia_10b_lowdelay_P_level_0_dec.txt
'.
System Error.  Code: 123.
The filename, directory name, or volume label syntax is incorrect

我什至无法通过winscp 将此 txt 文件传输到我的 Windows 桌面。

yuv 文件工作正常!

编辑:当我将shell 脚本的内容复制/粘贴到终端时,txt 文件工作正常。 编辑 2:当我重命名文件并删除 txt 并再次添加时,文件会正常打开...

你知道如何解决这个问题吗?

提前谢谢你!

【问题讨论】:

  • @molbdnilo 当我尝试从服务器打开其他 txt 文件时,winscp 会正确打开它们。我相信错误可能出在shell 脚本中。

标签: python-2.7 shell ubuntu sh


【解决方案1】:

您可能在脚本文件中有 Windows 行结尾 - 至少这就是为什么如果您正确粘贴它,我会从错误消息中得到。

运行 dos2unix scriptFilename.shsed -i 's/\r//' scriptFilename.sh 以从脚本中删除 Windows 行尾。


对于 Python 脚本,请参阅此问答:How to write Unix end of line characters in Windows using Python

【讨论】:

    【解决方案2】:

    我找到了解决方案。

    在创建 shell 脚本时,在我拥有的 txt 文件名称旁边:

    ...
    >> /home/zinonas/decode/pirkagia_10b_lowdelay_P_level_"+str(x)+"_dec.txt\n")
    

    所以换行符\n 想在txt 旁边。这就是问题所在。我在它们之间添加了一个新空间,问题就解决了!

    我的新代码现在是:

    ...
    >> /home/zinonas/decode/pirkagia_10b_lowdelay_P_level_"+str(x)+"_dec.txt \n")
    

    【讨论】:

      【解决方案3】:

      文件名末尾是否有“流氓”CR?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-15
        • 2013-10-04
        • 1970-01-01
        • 2018-11-04
        • 2011-06-01
        • 1970-01-01
        相关资源
        最近更新 更多