[解決済み] コードを含むファイルをcat <<EOF >>する方法は?
2022-03-07 04:19:10
質問
を使用して、コードをファイルに印刷したい。
cat <<EOF >>
:
cat <<EOF >> brightup.sh
!/bin/bash
curr=`cat /sys/class/backlight/intel_backlight/actual_brightness`
if [ $curr -lt 4477 ]; then
curr=$((curr+406));
echo $curr > /sys/class/backlight/intel_backlight/brightness;
fi
EOF
が、ファイル出力を確認すると、こうなる。
!/bin/bash
curr=1634
if [ -lt 4477 ]; then
curr=406;
echo > /sys/class/backlight/intel_backlight/brightness;
fi
シングルクォートを付けてみましたが、出力にはシングルクォートも一緒に出てきます。どうすればこの問題を回避できますか?
解決方法を教えてください。
の後のヒアドキュメントデリミタをシングルクオートで囲むだけです。
<<
.
cat <<'EOF' >> brightup.sh
またはバックスラッシュ・エスケープする。
cat <<\EOF >>brightup.sh
クォートしないと、ここにある文書は変数の置換を受け、バックティックが評価されるなど、あなたが発見したようなことが起こります。
もし、すべての値ではなく、いくつかの値を展開する必要がある場合は、防ぎたい値を個別にエスケープする必要があります。
cat <<EOF >>brightup.sh
#!/bin/sh
# Created on $(date # : <<-- this will be evaluated before cat;)
echo "\$HOME will not be evaluated because it is backslash-escaped"
EOF
を生成します。
#!/bin/sh
# Created on Fri Feb 16 11:00:18 UTC 2018
echo "$HOME will not be evaluated because it is backslash-escaped"
で提案されているように
フェドーキー
の該当部分です。
man bash
:
ここにある書類
このタイプのリダイレクションは、シェルに対して、入力が 現在のソースは、デリミタのみを含む行まで(デリミタがない)。 が表示される。 その時点までに読み込まれたすべての行が コマンドの標準入力として使用されます。
here-documentsのフォーマットは。
<<[-]word here-document delimiter
パラメータ展開、コマンド置換、算術展開は行いません。 またはパス名展開が行われる。 wordの中に文字がある場合 が引用されている場合、デリミタは単語の引用除去の結果であり、また の行は展開されません。 ワードが 引用符で囲まれていない場合、Here-Document のすべての行は、パラメータ 展開、コマンド置換、算術展開 . この場合 後者の場合、文字列
\<newline>
は無視され\
は引用符で囲む必要があります。\
,$
および`
.
関連
-
[解決済み] rm -rfを元に戻すには?[クローズド]
-
[解決済み] エラーです。"gzip: stdout: Linuxカーネルアップグレード中に「No space left on device」(デバイスに空き容量がない)が発生する(空き容量がある間)[closed]。
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] ワイルドカードマッチングに基づいて、現在のフォルダとサブフォルダ内のすべてのファイルを再帰的に検索するにはどうすればよいですか?
-
[解決済み] Linux上で動作するC++コードのプロファイリングを行うにはどうすればよいですか?
-
[解決済み] すべてのディレクトリとサブディレクトリを再帰的にgrepするにはどうしたらいいですか?
-
[解決済み] Bashでファイルの中身をループする
-
[解決済み] bashで "cat << EOF "はどのように動作するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】環境変数TERMが設定されていない件
-
[解決済み】PytorchがCUDAは利用できないと言う件
-
[解決済み] linuxでpsから特定のプロセスをgrepする方法は?
-
[解決済み] Bashスクリプトでスクリプトファイル名を知るには?
-
[解決済み] フォルダが存在するにもかかわらず、マウントポイントが存在しない。手動でマウントできる
-
[解決済み] Bashを使ったファイルの検索とコピー [重複]。
-
[解決済み] SIGRTMAXとSIGRTMINの使い方は?
-
[解決済み] sudoとnohupを連動させる
-
[解決済み] VIMでの検索と置換の結果、末尾の文字が表示される
-
[解決済み] 単一のコマンドでssh経由でコマンドが見つからない、ターミナルに接続したら見つかった[重複]。