Linux bash脚本无法生成预期结果

时间:2018-10-30 17:37:02

标签: linux bash

我是linux编程的新手,目前正在大学学习它。我知道我的问题可能会有点长,我首先道歉,因为我真的不知道我哪里出了错...我遇到了如下问题。

enter image description here

我写了这样的代码:

#!/bin/bash

if [ $# -eq 1 ]
then
    for file in *.txt         
do
    echo "$file"
    b="$1"
    a="`grep $b $file`"
        if [ "$a" ]
        then
            cat $file | grep '$1' | sort >> $1.'txt'
        else
            echo "No records found for $1"
        fi
        done
else
    echo "Usage: ./Train_trace.sh <train ID>"
fi

以上代码希望满足问题1.2的要求,但我真的不知道我的问题在哪里,并且已经导致两天的失败结果。我真的希望有人能给我一些提示。非常感谢。

1 个答案:

答案 0 :(得分:0)

您的代码有很多问题。一种好的方法是使用线路

set -x

作为文件的第二行。这将显示每行执行时的解释,并将帮助您发现问题。

我建议您使用有意义的变量名。例如,使用“ train_id”而不是“ b”。另外,将$ 1分配给变量后,请使用该变量,请勿使用$ 1。

当变量用单引号引起来时-'$ foo',将不会解释该变量。

为帮助我们提供更多帮助,请在输入文件中添加几行。强烈建议不要在问题中使用图像文件。想要帮助您的人被迫从图像中重新输入信息,而鼓励答案的过程太长。