bashスクリプトのcat出力を別のスクリプトの変数に割り当てる方法


29

引数を取るときにcat出力を生成するbashスクリプトがあります。また、最初のbashスクリプトを実行する別のbashスクリプトがあり、その引数を使用してcat出力を生成します。最初のbashスクリプトによって生成されたcat出力を変数に保存するにはどうすればよいですか?

回答:


38
var=$( cat foo.txt )

catin変数の出力を保存しますvar

var=$( ./myscript )

の出力をmyscript同じ変数に保存します。


5
私のようなbash初心者のための簡単なヒント、間隔と間隔なしはすべて重要です、正確なパターンに従ってください!例えば、var = $( cat foo.txt )動作しません
sojim2

@Dalkerはfoo.txtの大きさに制限がありますか?10 MB以上のデータがあります。猫は全部保管しますか?将来の参考のために制限があるかどうか知りたいです。
myhouse

@sojimこれの答えを知っていますか?
myhouse

1
@myhouse この回答によれば、bash自体による制限はありませんが、制限はむしろ基礎となる環境に割り当てられたメモリであり、もちろん異なる場合があります。
ダルカー

3

二重引用符を使用します。これを試して

var="$(cat foo.txt)"

3
もの(特にで始まるもの$)を二重引用符で囲むことは決して悪い考えではありません。ただし、変数への代入の場合、実際には役立ちません。
G-Manが「Reinstate Monica」と言う

@ G-Man:その変数に残したい改行またはタブがその変数に含まれている場合はどうなりますか?
jvriesem

@jvriesem:もしそうなら?質問はありますか?
G-Manは「Reinstate Monica」と

このコマンドを実行すると、すべての改行が削除されるようです。
K.カーペンター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.