Bashで、これを試しました:
echo -e "hello\nworld"
ただし、改行は出力されず、のみが出力され\n
ます。改行を印刷するにはどうすればよいですか?
Ubuntu11.04を使用しています。
printf
代わりに使用できます:
printf "hello\nworld\n"
printf
よりも一貫した動作をしecho
ます。の動作はecho
バージョンによって大きく異なります。
本当にバッシュになっていますか?私のために働く、4つの方法すべて:
echo -e "Hello\nworld"
echo -e 'Hello\nworld'
echo Hello$'\n'world
echo Hello ; echo world
echo $'hello\nworld'
プリント
hello
world
$''
文字列はANSIC引用を使用します:
フォームの単語は特別に扱われます。単語は文字列に展開され、ANSIC標準で指定されているように円記号でエスケープされた文字が置き換えられます。
$'string'
あなたはいつでもすることができますecho ""
。
例えば
echo "Hello"
echo ""
echo "World"
試してみてください
echo -e "hello\nworld"
hello
world
私のためにnano
エディターで働いた。
マニュアルページから:
-e
バックスラッシュエスケープの解釈を有効にする
誰かが壁に頭をぶつけて、同僚のスクリプトが改行を出力しない理由を理解しようとしていることに気付くという偶然の機会に、これに注意してください->
#!/bin/bash
function GET_RECORDS()
{
echo -e "starting\n the process";
}
echo $(GET_RECORDS);
上記のように、メソッドの実際の実行自体が、メソッド自体にある可能性のあるエコーに優先するエコーにラップされる場合があります。明らかに私は簡潔にするためにこれを水で濡らしました、それを見つけるのはそれほど簡単ではありませんでした!
次に、関数を実行するためのより良い方法は次のようになることを仲間に通知できます。
#!/bin/bash
function GET_RECORDS()
{
echo -e "starting\n the process";
}
GET_RECORDS;
エコーに関するPOSIX7
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html
-e
は定義されておらず、円記号は実装で定義されています。
最初のオペランドが-nの場合、またはいずれかのオペランドに<backslash>文字が含まれている場合、結果は実装によって定義されます。
オプションのXSI拡張機能がない限り。
したがってprintf
、代わりに使用することをお勧めします。これは明確に指定されています。
formatオペランドは、XBDファイルフォーマット表記[...]で説明されているフォーマット文字列として使用されます。
ファイル形式の表記:
\ n <改行>印刷位置を次の行の先頭に移動します。
また、Ubuntu15.10とほとんどのディストリビューションはecho
両方を次のように実装していることにも注意してください。
help echo
which echo
混乱を招く可能性があります。
入力するだけです
echo
新しい行を取得するには
これはラズビアンで私のために働きます、
echo -e "hello\\nworld"
str='hello\nworld'
$ echo | sed "i$str"
hello
world
それはCentOSで私のために働きます:
echo -e ""hello\nworld""
次のこともできます。
echo "hello
world"
これは、スクリプト内とコマンドラインの両方で機能します。
コマンドラインでShift+Enterを押して、文字列内の改行を実行します。
これは私のmacOSと私のUbuntu18.04で私のために働きます
これらのソリューションのいずれでも機能せず、関数から戻り値を取得する必要がある人のために、ここにもう1つのエントリがあります。
function foo()
{
local v="Dimi";
local s="";
.....
s+="Some message here $v $1\n"
.....
echo $s } r=$(foo "my message");
echo -e $r;
このトリックだけが、私がこのbashで作業していたLinuxで機能しました。
GNU bash, version 2.2.25(1)-release (x86_64-redhat-linux-gnu)
それが同様の問題を抱えている人に役立つことを願っています。
私のスクリプト:
echo "WARNINGS: $warningsFound WARNINGS FOUND:\n$warningStrings
出力:
WARNING : 2 WARNINGS FOUND:\nWarning, found the following local orphaned signature file:
私のbashスクリプトでは、試してみるまであなたのように怒っていました。
echo "WARNING : $warningsFound WARNINGS FOUND: $warningStrings"
そのジャンプを挿入したい場所にEnterキーを押すだけです。現在の出力は次のとおりです。
WARNING : 2 WARNINGS FOUND:
Warning, found the following local orphaned signature file:
これは次のように行う方がよいでしょう
x="\n"
echo -ne $x
-eオプションは、エスケープシーケンスのバックスラッシュを解釈します。
-nオプションは、出力の末尾の改行を削除します。
PS:コマンドechoには、出力に常に末尾の改行を含める効果があるため、それをオフにするには-nが必要です(混乱を少なくします)。
引数なしでエコーを使用します
echo "Hello"
echo
echo "World"
中かっこでエコーを使用することもできます。
$ (echo hello; echo world)
hello
world
エスケープシーケンスを解釈する新しい パラメータ拡張が追加されましたbash 4.4
。
${[email protected]} - E operator
展開は、
$'…'
引用メカニズムと同様にバックスラッシュエスケープシーケンスが展開されたパラメーターの値である文字列です。
$ foo='hello\nworld' $ echo "${[email protected]}"
hello
world
スクリプトを作成していて、他のメッセージの一部として改行を数回エコーする場合、クロスプラットフォームの優れたソリューションは、次のような変数に文字通りの改行を配置することです。
newline='
'
echo "first line$newlinesecond line" echo "Error: example error message n${newline}${usage}" >&2 #requires usage to be defined
スペースで区切られた複数の文字列を渡すことができ、それは\n
。として解釈される場合があります。
たとえば、複数行の通知にシェルスクリプトを使用する場合:
#!/bin/bash
notify-send 'notification success' 'another line' 'time now '`date +"%s"`
bashプロファイル(MacOx、iTerm)でエイリアスとして使用している間、テキストを二重引用符で囲む必要がありました。
alias helloworld="echo -e \"hello \n world\""
これで私はそこに着きました。
outstuff=RESOURCE_GROUP=[$RESOURCE_GROUP]\\nAKS_CLUSTER_NAME=[$AKS_CLUSTER_NAME]\\nREGION_NAME=[$REGION_NAME]\\nVERSION=[$VERSION]\\nSUBNET-ID=[$SUBNET_ID] printf $outstuff
収量:
RESOURCE_GROUP=[akswork-rg]
AKS_CLUSTER_NAME=[aksworkshop-804]
REGION_NAME=[eastus]
VERSION=[1.16.7]
SUBNET-ID=[/subscriptions/{subidhere}/resourceGroups/makeakswork-rg/providers/Microsoft.Network/virtualNetworks/aks-vnet/subnets/aks-subnet]
Reba McEntire が息子の Shelby Blackstock と共有しているクリスマスの伝統について学びましょう。
メーガン・マークルとマライア・キャリーが自然な髪の上でどのように結合したかについて、メーガンの「アーキタイプ」ポッドキャストのエピソードで学びましょう.
ハリー王子が家族、特にチャールズ王とウィリアム王子との関係について望んでいると主張したある情報源を発見してください。
ワイノナ・ジャッドが、母親のナオミ・ジャッドが亡くなってから初めての感謝祭のお祝いを主催しているときに、彼女が今では家長であることをどのように認識したかを学びましょう.
Air travel is far more than getting from point A to point B safely. How much do you know about the million little details that go into flying on airplanes?
The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!
来年は、スペースオペラの最も壮大で野心的なメディアシリーズの50周年を迎えます。しかし、スタートレックはその誇り高い遺産に沿って50歳の誕生日を迎えますか?スタートレックの誕生日を祝う方法はたくさんあります。
(画像提供:ゲッティイメージズ)ドナルド・トランプは、アメリカ合衆国大統領の立候補者となる比類のない外交的洞察力を示し、何百万人もの人々を怒らせ、彼の時代遅れの客体化に対する評価の主要な情報源を失いました。彼が立候補を発表し終える前にパレード。トランプ氏は演説の中で、この国で最も高い役職に選出された場合、米国との南の国境に壁を建設すると述べた一連の声明を発表した。
オンラインデートに関しては、船長、ベーコン愛好家、ポットヘッド向けに作られたサイトなど、長年にわたって選択できるニッチなサイトがたくさんあります。今、ディズニーファンは彼ら自身のマッチメイキングサイトを通して愛を見つけることができます。
ロシアのフィギュアスケーター、カミラ・バリエバが関与したドーピング事件が整理されているため、チームは2022年北京冬季オリンピックで獲得したメダルを待っています。
何千人ものAmazonの買い物客がMulberry Silk Pillowcaseを推奨しており、現在販売中. シルクの枕カバーにはいくつかの色があり、髪を柔らかく肌を透明に保ちます。Amazonで最大46%オフになっている間にシルクの枕カバーを購入してください
ラファイエット警察署は、「不審な男性が女性に近づいた」という複数の苦情を受けて、12 月にパデュー大学の教授の捜査を開始しました。
私たちの周りの世界と同じように、言語は常に変化しています。以前の時代では、言語の変化は数年または数十年にわたって発生していましたが、現在では数日または数時間で変化する可能性があります。
認知症を患っている 91 歳のアジア人女性が最近、47 番街のアウター サンセット地区でロメオ ロレンゾ パーハムに襲われました。伝えられるところによると、被害者はサンフランシスコの通りを歩いていたところ、容疑者に近づき、攻撃を受け、暴行を受けました。
“And a river went out of Eden to water the garden, and from thence it was parted and became into four heads” Genesis 2:10. ? The heart is located in the middle of the thoracic cavity, pointing eastward.
人々にチャンスを与えることは、人生で少し遅すぎると私は信じています。寛大に。