2016-07-08 10 views
0

ファイルから呼び出されたときに動作しませんが、独自のコードを実行すると簡単なコードセグメントが作成されます。スクリプト内からbashコードを呼び出すときに置換エラーが発生する

以下のコード:

for files in *; do echo ${files::10}; done 

私はファイル(例えばMyScript.sh)内にこれを入れしようとすると、私は次のコマンドを実行します。

sh MyScript.sh 

私は次のようなエラー「MyScript.shを受け取ります:2:MyScript.sh:置換が不正です "

なぜこのようなことが起こりますか?どのようにこれを修正することができますか?

+2

あなたは 'sh'が' bash'ですか? –

+0

'sh'はPOSIXシェルであり、この形式の置換をサポートしていないので、' bash'を使います。 http://stackoverflow.com/questions/5725296/difference-between-sh-and-bashを参照してください。 – cdarke

答えて

5

あなたは、bashの構文

bash MyScript.sh 

か(スクリプトの最初の行として)シェバングを追加

#! /bin/bash 

と実行許可

を設定を使用しているとして、あなたは bashない shを使用してそれを呼び出す必要があります
chmod +x MyScript.sh 

./MyScript.sh 
関連する問題