How do i get my variable to be used?

I’m a real novice when it comes to unity, I tend to stick to the creative aspects when making games so i hardly have experience with code, but I was task with making a game as an individual juxtaposed to usually being in a group for my coursework, you can imagine how thrilled I am about that -_-, I’m making a movement code so that pressing the left shift key would increase the characters movement speed, which I’ve done, but i also need the animation to change from walking to sprinting, so i created a bool variable that is intended to trigger upon pressing left shift along with the movement speed, called mspeed, so that when mspeed becomes true the animation will change, its probably a round about way of doing but i thought it was the simplest because the speed way doesn’t seem to work for me :/. here’s the problem part of the code anyhow:

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class Movement: MonoBehaviour {

private Rigidbody2D myRigidbody;

private Animator myAnimator;

private bool facingRight;
[SerializeField]
public float movementSpeed;
float speed;
bool mspeed;
public float initialSpeed = 6f;
public float runMultiplier; 

// Use this for initialization
void Start () {
	facingRight = true;
	myRigidbody = GetComponent<Rigidbody2D> ();
	myAnimator = GetComponent<Animator>();
}

// Update is called once per frame
void FixedUpdate () {

movementSpeed = Input.GetKey (KeyCode.LeftShift) ? initialSpeed * runMultiplier : initialSpeed;
	if (Input.GetKey (KeyCode.LeftShift)) mspeed = true;

the main part I’m having an issue with is the bottom, the variable mspeed doesn’t seem to be becoming true, if there’s any other way to make this code work I’m open to suggestions, any assisstence would be greatly appreciated. Ty in advance!

It’s better to check Input in the Update method as FixedUpdated is only called every few frames or seconds that is setup in your settings.
Update is called every single frame.