私は端末からこのスクリプトを実行しようとしています(経由 sh )私の端末ウィンドウに次のエラーが表示されます。
/home/MinecraftServers/Ephona/serverconfig/ line 14: syntax error near unexpected token `fi"
/home/MinecraftServers/Ephona/serverconfig/ line 14: `fi"
#!
予期しないトークン `Fi 'の近くの構文エラー|書式が正しく表示される[閉じる] - Bash、If-Statement、Terminal、Centos、Syntax-Error
/ um_test1 [(1, 2)、(2, 1)] あなたはそれを次のように実行する必要があります [mycom7]#. / um_test1 "[(1, 2)、(2, 1)]" また、コマンド/シェルスクリプトが複数行にわたる場合は、コマンド/シェルスクリプトを正しく実行していることを確認してください。 パラメータタイプのため、二重引用符が必要です。余分なスペースがあると、コードが台無しになり、エラーメッセージが表示される場合があります。実行しているコマンドの 公式ドキュメント を確認し、問題がないか確認してください。 解決策2:シェルスクリプトのトラブルシューティング ソースシステムで動作するがターゲットでエラーを返すシェルスクリプトを使用している場合は、実行中に保存されている変数を確認して問題の原因を確認することで、スクリプトをトラブルシューティングできます。これは非常に一般的な原因です。いくつかのケースでは、シェルが印刷できない文字を解釈しようとするためです。 'vx'のパラメーターでシェルを実行してみてください。これにより、実行されているコマンドとスクリプトに格納されている値がわかります。ここから、問題のトラブルシューティングと診断を行うことができます。 たとえば、次のように 'vx'を含めた後、ターミナルでスクリプトを実行します。 #sh -vx. / 次のように「cat」コマンドを使用して、スクリプトの内容を確認できます。 #cat 解決策3: ''コマンドを使用する Windows / DOSテキストファイルでは、改行はキャリッジリターン(\ r)とそれに続く改行(\ n)の組み合わせです。Mac(Mac OS Xより前)では、改行は単純な復帰(\ r)を使用していました。Unix / LinuxおよびMac OS Xは、改行(\ n)改行を使用します。Cygwinを使用している場合、余分なキャリッジリターン(\ r)文字が原因で、DOS / Windowsおよび古いMacで作成されたスクリプトの処理に失敗します。 ここで、スクリプトを正しい形式に変換する ''コマンドを作成し、問題なく実行できます。 結論として、コマンドと使用しているプラットフォームのタイプを調査し、矛盾がないことを確認する必要があります。あらゆる可能性をカバーすることはできないため、発生する可能性のあるエラーの種類とそれらを修正する方法を理解しているはずです。
シェル実行時のエラー『予期しないトークン `$'\R'' 周辺に構文エラーがあります』 - You Learn
間にスペースが必要です もし そして [ 、 このような:
#! /bin/bash
#test file exists
FILE="1"
if [ -e "$FILE"]; then
if [ -f "$FILE"]; then
echo:"$FILE is a regular file"
fi...
これら(およびそれらの組み合わせ)もすべて 正しくありません :
if [-e "$FILE"]; then
if [ -e"$FILE"]; then
一方、これらはすべて問題ありません。
if [ -e "$FILE"];then # no spaces around;
if [ -e "$FILE"]; then # 1 or more spaces are ok
ところで、これらは同等です:
if test -e "$FILE"; then
これらも同等です:
if [ -e "$FILE"]; then echo exists; fi
[ -e "$FILE"] &
&
echo exists
test -e "$FILE" &
そして、スクリプトの中央部分は、 エリフ このような:
echo $FILE is a regular file
elif [ -d "$FILE"]; then
echo $FILE is a directory
fi
(引用符も削除しました エコー 、この例のように、それらは不要です)
Linux : 予期しないトークンの近くの構文エラー 'Then'
Advise: Windowsのエラーと最適化システムのパフォーマンスを修正するにはここをクリック
予期しないトークン `( 'に近い エラーメッセージ 構文エラー は、Unixタイプの環境、Cygwin、およびWindowsのコマンドラインインターフェイスで発生します。このエラーは、編集されたシェルスクリプトを実行しようとするか、古いDOS / WindowsまたはMacシステムで作成されました。 予期しないトークン `( '付近の構文エラー このエラーメッセージは、ファイルの手動コピーなどの日常的なタスクのためにLinuxコマンドラインにコマンドを入力しているときにも表示されます。シェル。 予期しないトークン `( 'の近くで構文エラーが発生する原因は何ですか?
私は非常に小さなシェルスクリプトを持っています。私はそれを実行しているとき実行フロー。 "予期しないトークンの近くで構文エラーが発生しています。
foreach i ( `cat list407`)
mkdir cells/${i}
cp //$i/${i} cells/${i}/${i}
end
エラー:
flow: line 1: syntax error near unexpected token `("
flow: line 1: `foreach i ( `cat list407`)"
回答:
回答№1は4 あなたは使ったことがあります csh 使用するための構文 bash これによりエラーが発生しています。
いずれかを使用する csh スクリプトを実行したり、 bash いう:
while read -r i; do
mkdir "cells/${i}"
cp "//${i}/${i}" "cells/${i}/${i}"
done < list407
回答№2の場合は1 for i in $(cat list407); do
mkdir cells/${i};
cp //$i/${i} cells/${i}/${i};
done