如何将文件输入到linux可执行文件?

时间:2016-12-16 16:58:13

标签: linux bash

这是我的linux bash脚本的一部分。我需要向./AAAAA可执行文件输入一些命令行参数,但它看不到它们。当我用<<end .. end打包它时,它会向我显示“意外的EOF”错误。我试图将所有输入文件放在..附近 - 也没有帮助。我的想法已经不多了。

while [ "$month" -le 9 ]
do
            while [ "$day" -le 31 ]
            do
                            "AAAA_15-0$month-$day_text.ff"
                            xargs ./EXECUTABLE <<EOF
                            "AAAA_15-0$month-$day_text.ff"
                            "AAAA_15-0$month-$day_text"
                            "AAAA_15-0$month-$day_text.det"
                            ZZZ.txt
                            XXX.txt
                            CCC.txt
                            VVV.txt
                            BBB.txt
                            EOF
                            mv "AAAA_15-0$month-$day_text"*"."* "15-0$month-$day_text"
                            day=`expr $day + 1`
            done
            day=`expr $month + 1`

完成

2 个答案:

答案 0 :(得分:1)

使用xargs

xargs ./AAAA <<EOF
XXXX.ff
XXXX.det
CCCC.txt
BBBB.txt
NNNN.txt
MMMM.txt
LLLL.txt
EOF

答案 1 :(得分:0)

当您使用<<EOF时,EOF必须位于该行的开头,如果缩进,则无法找到它。

while [ "$month" -le 9 ]
do
    while [ "$day" -le 31 ]
    do
        "AAAA_15-0$month-$day_text.ff"
        xargs ./EXECUTABLE <<EOF
        "AAAA_15-0$month-$day_text.ff"
        "AAAA_15-0$month-$day_text"
        "AAAA_15-0$month-$day_text.det"
        ZZZ.txt
        XXX.txt
        CCC.txt
        VVV.txt
        BBB.txt
EOF
        mv "AAAA_15-0$month-$day_text"*"."* "15-0$month-$day_text"
        day=`expr $day + 1`
    done
    day=`expr $month + 1`
done

您可以使用<<-EOF。这允许它缩进,但缩进必须 Tab 字符,而不是空格。

相关问题