在简单的shell脚本中使用while无限循环时出现语法错误

时间:2016-04-05 08:25:01

标签: shell while-loop

一个简单的shell脚本:

class PlayerList(ListView):

    model = player_model
    template_name = 'player_list.html'
    permission_classes = (TeamViewPermission, )

def get_team(self):
    if not hasattr(self, '_team'):
        team_id = self.kwargs.get('team_id')
        self._team = team_model.objects.get(pk=self.kwargs.get('team_id'))
    return self._team

def get_context_data(self, *args, **kwargs):
    context = super().get_context_data(*args, **kwargs)
    context['team'] = self.get_team()
    return context

def get_queryset(self, *args, **kwargs):
    queryset = super().get_queryset(*args, **kwargs)
    return queryset.filter(team_id=self.kwargs.get('team_id'))

此脚本会抛出错误,如下所示:

#!/bin/sh
str="hello"
while [ -n $str ]; do
  #do noting, just loop infinitely
done

为什么,以及正确的方法是什么?

1 个答案:

答案 0 :(得分:2)

你需要do一些东西!你可以做的最短的事情就是:

#!/bin/sh
str="hello"
while [ -n "$str" ]; do
  :
done

:true的简写,没有做任何事情并且返回成功。

顺便说一句,我引用了你的字符串$str,因为这是你应该做的事情。