我是linux编程的新手,目前正在大学学习它。我知道我的问题可能会有点长,我首先道歉,因为我真的不知道我哪里出了错...我遇到了如下问题。
我写了这样的代码:
#!/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的要求,但我真的不知道我的问题在哪里,并且已经导致两天的失败结果。我真的希望有人能给我一些提示。非常感谢。
答案 0 :(得分:0)
您的代码有很多问题。一种好的方法是使用线路
set -x
作为文件的第二行。这将显示每行执行时的解释,并将帮助您发现问题。
我建议您使用有意义的变量名。例如,使用“ train_id”而不是“ b”。另外,将$ 1分配给变量后,请使用该变量,请勿使用$ 1。
当变量用单引号引起来时-'$ foo',将不会解释该变量。
为帮助我们提供更多帮助,请在输入文件中添加几行。强烈建议不要在问题中使用图像文件。想要帮助您的人被迫从图像中重新输入信息,而鼓励答案的过程太长。