1

我在 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. windows我从using创建了 bash 脚本python 2.7,我想在ubuntu.

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

我在终端中没有收到错误,但x265编码器没有运行并出现警告:

[warning]: extra unused command arguments given <

我的 shell 脚本中有什么特殊字符吗?

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

4

1 回答 1

2

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

2>&1或者1>&2

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

Stack Overflow 上的相关问题:如何使用 Bash 将 stdout 和 stderr 重定向并附加到文件中?


编辑:

显然,您还收到了其他顺序的错误消息:

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

这更令人惊讶。

根据我们在评论中的小讨论,这是由于不正确的行尾处理。可能整个脚本被视为只有一个大行,这可以解释 bash 惊讶地看到几个重定向。

有关信息,以防评论被删除:使用 Notepad++ 菜单Edit > EOL Conversion解决了这个问题。更多信息:记事本 ++ 中的 EOL 转换

于 2017-10-16T11:45:59.300 回答