what's wrong with this script?

#pragma strict

var moveTo : Vector3;
var rotateTo : Vector3;
var movementSpeed : float;


 
var sway : String = "AnimationName";
var idle : String = "AnimationName";
 
var anim : GameObject;
var animSpeed : float = 1.0;




  
function Update () {
        if(Input.GetKey("left shift") && Input.GetKey("up") && CharacterController.isGrounded){ // here you can use boolean (if player is walking or running)
                
                
                var runTarget = Quaternion.Euler(rotateTo);
                transform.localRotation = Quaternion.Slerp(transform.localRotation, runTarget, Time.deltaTime * movementSpeed);
                transform.localPosition = Vector3.Lerp(transform.localPosition, moveTo, Time.deltaTime * movementSpeed);
                anim.animation[sway].speed = animSpeed;
                anim.animation.CrossFade (sway);
        }else{
                transform.localRotation = Quaternion.Slerp(transform.localRotation, Quaternion.Euler (0, 0, 0), Time.deltaTime * movementSpeed);
                transform.localPosition = Vector3.Lerp(transform.localPosition, Vector3(0,0,0), Time.deltaTime * movementSpeed);
                anim.animation.CrossFade (idle);
        }
}

and i get this error : An instance of type ‘UnityEngine.CharacterController’ is required to access non static member ‘isGrounded’.

Your answer is in the error.

CharacterController.isGrounded

This line above would mean isGrounded is a static member but it is not.

You need to create a variable of type CharacterController (A), fetch the CC component(B) and place a reference to it(C) in the variable and then use the instance(D).

var controller:CharacterController;  //A

function Start(){
    controller = GetComponent(CharacterController); //B and C
}
function Update(){
    if(controller.isGrounded)//D
}

I have done and now i get this error : Object reference not set to an instance of an object

#pragma strict
 
var moveTo : Vector3;
var rotateTo : Vector3;
var movementSpeed : float;


var controller : CharacterController; 
var sway : String = "AnimationName";
var idle : String = "AnimationName";
 
var anim : GameObject;
var animSpeed : float = 1.0;

function Start(){
    controller = GetComponent(CharacterController); //B and C
}



  
function Update () {
        if(Input.GetKey("left shift") && Input.GetKey("up") && controller.isGrounded){ // here you can use boolean (if player is walking or running)
                
                
                var runTarget = Quaternion.Euler(rotateTo);
                transform.localRotation = Quaternion.Slerp(transform.localRotation, runTarget, Time.deltaTime * movementSpeed);
                transform.localPosition = Vector3.Lerp(transform.localPosition, moveTo, Time.deltaTime * movementSpeed);
                anim.animation[sway].speed = animSpeed;
                anim.animation.CrossFade (sway);
        }else{
                transform.localRotation = Quaternion.Slerp(transform.localRotation, Quaternion.Euler (0, 0, 0), Time.deltaTime * movementSpeed);
                transform.localPosition = Vector3.Lerp(transform.localPosition, Vector3(0,0,0), Time.deltaTime * movementSpeed);
                anim.animation.CrossFade (idle);
        }
}