タグ付けされた質問 「heredoc」



8
「cat << EOF」はbashでどのように機能しますか?
プログラムに複数行入力を入力するスクリプトを作成する必要がありました(psql)。 少しグーグルで調べたところ、次の構文が機能することがわかりました。 cat &lt;&lt; EOF | psql ---params BEGIN; `pg_dump ----something` update table .... statement ...; END; EOF これにより、複数行の文字列(fromからBEGIN;をEND;含む)が正しく構築され、入力としてにパイプされますpsql。 しかし、私はそれがどのように/なぜ機能するのか分かりません、誰かが説明できますか? 私はを主に参照してるcat &lt;&lt; EOF私が知っている、&gt;ファイルへの出力&gt;&gt;ファイルに追加、&lt;ファイルからの入力を読み込みます。 &lt;&lt;正確には何をしますか? そして、そのためのマニュアルページはありますか?
631 linux  bash  scripting  heredoc 


17
1行のコマンドラインで複数行のステートメントを実行しますか?
私はPythonを使っ-cてワンライナーループを実行しています、すなわち: $ python -c "for r in range(10): print 'rob'" これは正常に動作します。ただし、forループの前にモジュールをインポートすると、構文エラーが発生します。 $ python -c "import sys; for r in range(10): print 'rob'" File "&lt;string&gt;", line 1 import sys; for r in range(10): print 'rob' ^ SyntaxError: invalid syntax これを修正する方法はありますか? Makelineに含めることができるように、これを1行にすることが重要です。

5
PHPでヒアドキュメントを使用する利点は何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 PHPでヒアドキュメントを使用する利点は何ですか?例を示すことができますか?
196 php  heredoc 

3
Bashヒアドキュメント内で変数を使用する
私はbashのヒアドキュメント内の変数を補間しようとしています: var=$1 sudo tee "/path/to/outfile" &gt; /dev/null &lt;&lt; "EOF" Some text that contains my $var EOF これは私が期待するようには機能しません($var文字どおりに扱われ、展開されません)。 sudo teeファイルの作成にはsudo が必要なので、使用する必要があります。次のようなことをする: sudo cat &gt; /path/to/outfile &lt;&lt;EOT my text... EOT &gt;outfilesudoを使用していない現在のシェルでファイルを開くため、機能しません。
192 bash  variables  sh  heredoc 

4
ヒアドキュメントをパイプするための複数行の構文。これはポータブルですか?
私はこの構文に精通しています: cmd1 &lt;&lt; EOF | cmd2 text EOF しかし、bashを使用すると次のように記述できることがわかりました。 cmd1 &lt;&lt; EOF | text EOF cmd2 (ヒアドキュメントはcmd1への入力として使用され、cmd1の出力はcmd2にパイプされます)。これは非常に奇妙な構文のようです。ポータブルですか?
132 bash  shell  pipe  sh  heredoc 

14
Javascriptヒアドキュメント
JavaScriptのヒアドキュメントのようなものが必要です。これについて何かアイデアはありますか?クロスブラウザ機能が必要です。 私はこれを見つけました: heredoc = '\ &lt;div&gt;\ &lt;ul&gt;\ &lt;li&gt;&lt;a href="#zzz"&gt;zzz&lt;/a&gt;&lt;/li&gt;\ &lt;/ul&gt;\ &lt;/div&gt;'; うまくいくと思います。:)

3
コードを含むファイルを<< EOF >>する方法
コードをファイルに出力したいcat &lt;&lt;EOF &gt;&gt;: cat &lt;&lt;EOF &gt;&gt; brightup.sh !/bin/bash curr=`cat /sys/class/backlight/intel_backlight/actual_brightness` if [ $curr -lt 4477 ]; then curr=$((curr+406)); echo $curr &gt; /sys/class/backlight/intel_backlight/brightness; fi EOF しかし、ファイル出力を確認すると、次のようになります。 !/bin/bash curr=1634 if [ -lt 4477 ]; then curr=406; echo &gt; /sys/class/backlight/intel_backlight/brightness; fi 一重引用符を付けてみましたが、出力には一重引用符も含まれています。この問題を回避するにはどうすればよいですか?
100 linux  unix  sh  heredoc 

11
Ruby HEREDOCから先頭の空白文字を削除するにはどうすればよいですか?
作成しようとしているRubyのヒアドキュメントに問題があります。すべての先頭の空白文字を抑制することになっている-演算子を含めても、各行から先頭の空白が返されます。私の方法は次のようになります: def distinct_count &lt;&lt;-EOF \tSELECT \t CAST('#{name}' AS VARCHAR(30)) as COLUMN_NAME \t,COUNT(DISTINCT #{name}) AS DISTINCT_COUNT \tFROM #{table.call} EOF end そして私の出力は次のようになります: =&gt; " \tSELECT\n \t CAST('SRC_ACCT_NUM' AS VARCHAR(30)) as COLUMN_NAME\n \t,COUNT(DISTINCT SRC_ACCT_NUM) AS DISTINCT_COUNT\n \tFROM UD461.MGMT_REPORT_HNB\n" これはもちろん、最初の "と\ tの間のすべてのスペースを除いて、この特定のインスタンスで正しいです。誰かが私がここで間違っていることを知っていますか?

17
HEREDOC文字列内でのPHP関数の呼び出し
PHPでは、HEREDOC文字列宣言は、htmlのブロックを出力するのに非常に役立ちます。$を前に付けるだけで変数を解析できますが、より複雑な構文($ var [2] [3]など)の場合は、式を{}括弧内に配置する必要があります。 PHP 5では、実際にHEREDOC文字列内の{}括弧内で関数呼び出しを行うことができますが、少し作業を行う必要があります。関数名自体は変数に格納する必要があり、動的に名前が付けられる関数のように呼び出す必要があります。例えば: $fn = 'testfunction'; function testfunction() { return 'ok'; } $string = &lt;&lt;&lt; heredoc plain text and now a function: {$fn()} heredoc; ご覧のとおり、これは単に次のコードよりも少し厄介です。 $string = &lt;&lt;&lt; heredoc plain text and now a function: {testfunction()} heredoc; HEREDOCから抜け出して関数を呼び出す方法や、問題を元に戻して次のようなことを行う方法など、最初のコード例以外にも他の方法があります。 ?&gt; &lt;!-- directly output html and only breaking into …
91 php  string  heredoc 

7
ヒアドキュメントで「予期しないファイルの終わり」エラーが発生する
ターミナルからメールを送信するためのスクリプトが必要です。ここやオンラインの他の多くの場所で見たものに基づいて、次のようにフォーマットしました。 /var/mail -s "$SUBJECT" "$EMAIL" &lt;&lt; EOF Here's a line of my message! And here's another line! Last line of the message here! EOF ただし、これを実行すると、次の警告が表示されます。 myfile.sh: line x: warning: here-document at line y delimited by end-of-file (wanted 'EOF') myfile.sh: line x+1: syntax error: unexpected end of file ...ここで、行xはプログラムで最後に記述されたコード行であり、行yはその中に含まれる行/var/mailです。私が交換しようとしたEOF他のものと(ENDOFMESSAGE、FINISHなど)が、無駄に。私がオンラインで見つけたほとんどすべてがこのように行われています、そして私はbashに本当に慣れていないので、自分でそれを理解するのに苦労しています。誰か助けを提供できますか?
82 bash  email  heredoc 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.