2010-11-09 5 views
0

la ligne de commande tâche est d'écrire un script shell entrées sont une chaîne et un nombreScript Shell, arguments

par exemple,

xxx.sh "Bonjour tout le monde" 3

l'entrée sera être

*************** 
* Hello World * 
* Hello World * 
* Hello World * 
*************** 

et voici ce que j'ai obtenu jusqu'à présent:

function mantra() { 
    echo "string is $1" 
    echo "number is $2" 

    echo $string 
    echo $PATH 
    for num in string_length; do 
     echo "*" 
    done 
} 

Comment puis-je compter le nombre de caractères dans la chaîne? Est-ce que je fais bien? Je ne sais pas exactement comment transmettre des arguments de ligne de commande dans mon function.Blockquote

Répondre

0

Le nombre de caractères dans votre chaîne d'entrée est ${#1}

Voir this page pour une brève explication.

0
#!/bin/sh 

function mantra() { 

    string=$1 
    num=$2 

    strlen=${#string} 

    let strlen=$strlen+2 


    echo -n "*" 
    for ((times = 0; times < $strlen; times++)); do echo -n "*" ; done 

    echo "*"; 


} 

mantra $1 $2 

    for ((times = 0; times < $num; times++)); do 
     echo "* $string *" 
    done 

mantra $1 $2