Shell脚本未在ubuntu中运行

时间:2017-10-16 11:40:30

标签: python bash shell ubuntu libx265

我在bash脚本encode.sh中有以下脚本。

echo "1 configuration out of 936"
x265 incident_10d_384x288_25.yuv --input-res 384x288 --fps 25 str/incident_10d_384x288_25_QP_0_ON_B0.bin --tune psnr --psnr --preset medium --max-merge 5 --merange 64 --no-open-gop -I 48 -i 8 --tu-intra-depth 3 --tu-inter-depth 3 --input-depth 8 --aq-mode 0 --b-adapt 0 --scenecut 48 --ref 4 --sao --deblock=0:0 --bframes 0 --qp 0 --csv-log-level 2 --log-level 4 --csv csv/incident_10d_384x288_25_QP_0_ON_B0.csv > txt/1_incident_10d_384x288_25_QP_0_ON_B0.txt 2<&1 
echo "2 configuration out of 936"
x265 incident_10d_384x288_25.yuv --input-res 384x288 --fps 25 str/incident_10d_384x288_25_QP_1_ON_B0.bin --tune psnr --psnr --preset medium --max-merge 5 --merange 64 --no-open-gop -I 48 -i 8 --tu-intra-depth 3 --tu-inter-depth 3 --input-depth 8 --aq-mode 0 --b-adapt 0 --scenecut 48 --ref 4 --sao --deblock=0:0 --bframes 0 --qp 1 --csv-log-level 2 --log-level 4 --csv csv/incident_10d_384x288_25_QP_1_ON_B0.csv > txt/2_incident_10d_384x288_25_QP_1_ON_B0.txt 2<&1 
echo "3 configuration out of 936"
x265 incident_10d_384x288_25.yuv --input-res 384x288 --fps 25 str/incident_10d_384x288_25_QP_2_ON_B0.bin --tune psnr --psnr --preset medium --max-merge 5 --merange 64 --no-open-gop -I 48 -i 8 --tu-intra-depth 3 --tu-inter-depth 3 --input-depth 8 --aq-mode 0 --b-adapt 0 --scenecut 48 --ref 4 --sao --deblock=0:0 --bframes 0 --qp 2 --csv-log-level 2 --log-level 4 --csv csv/incident_10d_384x288_25_QP_2_ON_B0.csv > txt/3_incident_10d_384x288_25_QP_2_ON_B0.txt 2<&1 

我想使用> txt/3_incident_10d_384x288_25_QP_2_ON_B0.txt 2<&1将每个编码的输出从终端写入txt文件。我使用windowspython 2.7创建了bash脚本,我希望在ubuntu中运行它。

当我从bash脚本中复制一行并在终端中运行它时,它正在工作。但是当我想从批处理文件中运行它时,它无效。

终端没有错误,但x265编码器没有警告运行:

[warning]: extra unused command arguments given <

我的shell脚本中是否有任何特殊字符?

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

1 个答案:

答案 0 :(得分:2)

输出重定向使用>&,而非<&。那将是

2>&11>&2

(可能是第一个,将标准错误(2)重定向到标准输出(1))

Stack Overflow上的相关问题:How can I redirect and append both stdout and stderr to a file with Bash?

编辑:

显然,您还有其他顺序的错误消息:

  

[警告]:给出的额外未使用的命令参数&gt;`

这更令人惊讶。

根据我们在评论中的小讨论,是由于错误的行结尾处理。可能整个剧本只被视为一个大行,这可以解释为什么bash很惊讶地看到了几个重定向。

有关信息,如果评论被删除:使用Notepad ++ menu Edit > EOL Conversion解决了问题。更多信息:EOL conversion in notepad ++