Generate Fibonacci Sequence in Shell

LinuxLinuxIntermediate
Practice Now

Introduction

The Fibonacci sequence is a series of numbers in which each number is the sum of the two preceding ones. In this challenge, we will write a shell script to generate Fibonacci numbers less than or equal to a given number n.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL shell(("`Shell`")) -.-> shell/ControlFlowGroup(["`Control Flow`"]) linux(("`Linux`")) -.-> linux/BasicSystemCommandsGroup(["`Basic System Commands`"]) linux(("`Linux`")) -.-> linux/InputandOutputRedirectionGroup(["`Input and Output Redirection`"]) shell(("`Shell`")) -.-> shell/BasicSyntaxandStructureGroup(["`Basic Syntax and Structure`"]) shell(("`Shell`")) -.-> shell/VariableHandlingGroup(["`Variable Handling`"]) shell(("`Shell`")) -.-> shell/AdvancedScriptingConceptsGroup(["`Advanced Scripting Concepts`"]) shell(("`Shell`")) -.-> shell/SystemInteractionandConfigurationGroup(["`System Interaction and Configuration`"]) shell/ControlFlowGroup -.-> shell/if_else("`If-Else Statements`") linux/BasicSystemCommandsGroup -.-> linux/declare("`Variable Declaring`") linux/BasicSystemCommandsGroup -.-> linux/exit("`Shell Exiting`") linux/BasicSystemCommandsGroup -.-> linux/echo("`Text Display`") linux/InputandOutputRedirectionGroup -.-> linux/redirect("`I/O Redirecting`") linux/BasicSystemCommandsGroup -.-> linux/read("`Input Reading`") shell/BasicSyntaxandStructureGroup -.-> shell/shebang("`Shebang`") shell/BasicSyntaxandStructureGroup -.-> shell/comments("`Comments`") shell/BasicSyntaxandStructureGroup -.-> shell/quoting("`Quoting Mechanisms`") shell/VariableHandlingGroup -.-> shell/variables_decl("`Variable Declaration`") shell/VariableHandlingGroup -.-> shell/variables_usage("`Variable Usage`") shell/VariableHandlingGroup -.-> shell/str_manipulation("`String Manipulation`") shell/VariableHandlingGroup -.-> shell/arrays("`Arrays`") shell/VariableHandlingGroup -.-> shell/param_expansion("`Parameter Expansion`") shell/ControlFlowGroup -.-> shell/for_loops("`For Loops`") shell/ControlFlowGroup -.-> shell/cond_expr("`Conditional Expressions`") shell/ControlFlowGroup -.-> shell/exit_status("`Exit and Return Status`") shell/AdvancedScriptingConceptsGroup -.-> shell/arith_expansion("`Arithmetic Expansion`") shell/AdvancedScriptingConceptsGroup -.-> shell/read_input("`Reading Input`") shell/AdvancedScriptingConceptsGroup -.-> shell/cmd_substitution("`Command Substitution`") shell/AdvancedScriptingConceptsGroup -.-> shell/subshells("`Subshells and Command Groups`") shell/SystemInteractionandConfigurationGroup -.-> shell/globbing_expansion("`Globbing and Pathname Expansion`") subgraph Lab Skills shell/if_else -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} linux/declare -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} linux/exit -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} linux/echo -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} linux/redirect -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} linux/read -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} shell/shebang -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} shell/comments -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} shell/quoting -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} shell/variables_decl -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} shell/variables_usage -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} shell/str_manipulation -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} shell/arrays -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} shell/param_expansion -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} shell/for_loops -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} shell/cond_expr -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} shell/exit_status -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} shell/arith_expansion -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} shell/read_input -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} shell/cmd_substitution -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} shell/subshells -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} shell/globbing_expansion -.-> lab-18313{{"`Generate Fibonacci Sequence in Shell`"}} end

Fibonacci

In this challenge, you are required to generate Fibonacci numbers less than or equal to a given number n using a script.

Tasks

You need to complete the following task:

  1. Implement existing algorithms using loops to generate Fibonacci numbers up to the given number n.

Requirements

You must meet the following requirements:

  • The script should be named fibonacci.sh.
  • The work directory should be ~/project.

Example

labex:project/ $ bash fibonacci.sh
[INPUT]Enter the value of N[INPUT]
15
[OUTPUT]Fibonacci Series of Given Number 15 is [OUTPUT]
0 1 1 2 3 5 8 13

largest of given Fibonacci series is: 13

Summary

After completing this challenge, you will have learned how to implement the Fibonacci algorithm using loops in a shell script. You will also have practiced taking input from the user and generating output based on the input. This challenge will help you improve your shell scripting skills and reinforce your understanding of the Fibonacci sequence.

Other Linux Tutorials you may like