2016-03-26 12 views
-1

これは私の初めての大学でのbashを使用して、それは今かなり難しいです。 運動は次のとおりです。初めてのBASH

パラメータ1ワードおよびファイルリストで受け取り、begginingに単語を追加し、これまでのところ、私が何をやったか、各ファイル

の終了シェルスクリプトを作りますこれはです:

#!bin/bash 

word=$1; 

i=2; 
j=2; 

for [ i -le $# ] in ls 
do 
    for [ j -le $# ] in ls 
    do 
     if [ $i = $j ] then 
      $j=`word+$j+word`; 
     fi 
    done 
done 

もちろん、私は本当になぜか分かりません。誰でも助けることができたら、それはすばらしいでしょう。 SOの言語ミスやコンベンションで申し訳ありませんが、私はここに到着しました。どうもありがとうございました!

+0

スクリプトは少なくとも* 2 *引数、単語、1つ以上のファイル名を使用する必要があります。次に、名前付きファイルを実際に修正し、ファイルの先頭と末尾に指定した単語を追加する必要があります。別の*文字列*の先頭と末尾に単語を追加しようとしています。 – chepner

答えて

2

、それは私がに思っているような方法で答えをあげる運動なので、それについてを学ぶ:

  • スクリプトはargumentsの任意の数を取る必要がある - たとえば./my_script.sh "my word" *.txtのために(最初のパラメータのspace and quotesに注意してください)。 shiftというシェル組み込みコマンドがあります。は、を引数リストから削除します。引数リストは、一般的に"[email protected]"を使用して参照が、それを完全に回避し、すべての引数をループにbashで便利なショートカット構文があるさ:もともと述べたが、先頭に文字列を追加すると言うよう

    for argument 
    do 
        something with "$argument" 
    done 
    
  • 運動は、それぞれファイルの末尾にあり、のファイル名はではありません。このサイトでこれを行う方法の例はたくさんありますが、unix.SEです。

  • [ (aka. test) and [[の違いに注意してください。
  • BashはCではありません - ;コマンド終止符は、行の終わりに暗黙のうちです(もちろん、複数行の文字列では、here documentsなどを除く)。
関連する問題