用于列出文件的前 n 行或后 n 行的 shell 脚本

用于列出文件的前 n 行或后 n 行的 shell 脚本

我想编写一个列出指定文件的前 n 行或后 n 行的脚本。

cd
        $1=filename
        $2=string
        $3=lenght

if [ "$filename" == "head" ]

#If the user uses the head command then do the following.

then [ "$filename" == "tail" ]
        head -n 10 /MyDirectoryGoesHere
else
#If the user uses the tail command do this instead.

        tail -n 10 /MyDirectoryGoesHere
fi

当我运行此命令时,我不断收到错误“Unexpected token close else”,并且我被告知要添加一个 for 循环,但不知道如何或在哪里添加。感谢您的帮助。

答案1

三件事:

(1) if-then-else-fi 结构应该看起来更像这样:

if [ "$myvar" = "value" ]; then
  # do stuff
elif [ "$myvar" = "othervalue" ]; then
  # do other stuff
else
  # do still other stuff
fi

(2) 你可以只使用 case switch:

case "$myvar" in
  "value")
    # do stuff
    ;;
  "othervalue")
    # do other stuff
    ;;
  *)
    # do still other stuff
    ;;
esac

(3) 我不知道你想用这些$1=filename命令做什么,但这绝对不是正确的方法,无论它是什么。 ;)

查看羊毛边 bash 教程了解更多。

相关内容