私はラインでこのエラーUbuntuのリダイレクタ "<<<"?
Syntax error: redirection unexpected
を取得しています:
if grep -q "^127.0.0." <<< "$RESULT"
私はUbuntuのでこれを実行するにはどうすればよいですか?
私はラインでこのエラーUbuntuのリダイレクタ "<<<"?
Syntax error: redirection unexpected
を取得しています:
if grep -q "^127.0.0." <<< "$RESULT"
私はUbuntuのでこれを実行するにはどうすればよいですか?
if grep -q "^127.0.0." <<< "$RESULT"
then
echo IF-THEN
fi
は、Bash固有のものです。別のシェル互換シェルを使用している場合は、次のコマンドを試してみてください。
if echo "$RESULT" | grep -q "^127.0.0."
then
echo IF-THEN
fi
解決済み、ありがとう! – jmginer
ありがとう@Halこれも私の問題を解決しました.. –
ブロック場合、私はあなたを完了した場合には、Ubuntuの上で私の作品:
if grep -q "^127.0.0." <<< "$RESULT"; then echo ""; fi
<<<は何ですか?これは私にとって新しいことかもしれません。 –
[here-strings](http://linux.die.net/abs-guide/x15683.html)にリダイレクトされます。 –
http://stackoverflow.com/questions/2462317/bash-syntax-error-redirection-unexpected – jmginer
<<<
はbashの固有のリダイレクト演算子です。 documentationは、それを"Here Document"の亜種である "Here String"と呼んでいます。
3.6.7 Here Strings
A variant of here documents, the format is:
<<< word
The word is expanded and supplied to the command on its standard input.
簡単な例:
$ cat <<< hello
hello
あなたがエラーを取得している場合、それはあなたがbashの以外のシェルを使用してコマンドを実行している可能性があります。スクリプトの先頭に#!/bin/sh
がある場合は、#!/bin/bash
に変更してみてください。
あなたは/bin/sh
でそれを使用しようとすると、それはおそらく<<
は「ここに文書」を参照し、その結果、その後予期しない<
を見ていると仮定し、「構文エラー:リダイレクション予期しない」あなたがしているメッセージ見て。
zshとkshもこの構文をサポートしています。
kshがサポートしています。ダッシュはしません。 –
'cat <(echo" hello ")'の短縮形だと言うのは正確でしょうか? (私は私の理解を深めることを求めています) –
@ Sridhar-Sarnobat:それほどではありません。 'cat <<< hello'は引数なしで' cat'を呼び出し、 'hello'とそれに続く改行を含む一時ファイルからstdinがリダイレクトされます。 'cat <(echo hello)'は、単一の引数で 'cat'を呼び出します。これは、同じデータを読み込むことができる疑似ファイルの名前です。 'cat'は引数なしで同じように動作し、stdinはリダイレクトされますが、読み込むファイルの名前を指定する単一の引数で動作しますが、他のコマンドは異なる動作をします。たとえば、 'ls -l/proc/self/fd/0 <<< hello'は一時ファイルへのシンボリックリンクを表示し、' echo <(echo hello) 'は'/dev/fd/63'を表示します。 –
リダイレクトは単一の左括弧ですか? < –
コードが左から右に移動します。しばらくしていますが、正しいことを覚えていれば、それをリダイレクトするために '' "RESULT" 'です。 –
このコマンドで何を達成したいですか? '$ RESULT'の値は何ですか? –