Ubuntu shell脚本:使用>>输出txt文件未打开

时间:2017-08-09 08:42:01

标签: python-2.7 shell ubuntu sh

我使用以下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 服务器:

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

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

winscp

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

shell个文件正常运行!

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

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

提前谢谢!

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

我找到了解决方案。

在创建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")

答案 2 :(得分:0)

是否有"流氓" CR在文件名末尾?