我想编写一个列出指定文件的前 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 教程了解更多。