[解決済み] コードを含むファイルをcat <<EOF >>する方法は?
2022-05-11 13:19:43
質問
を使用して、コードをファイルに印刷したい。
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>
は無視され\
は引用符で囲む必要があります。\
,$
および`
.
関連
-
ディープインシステムの画面解像度を設定する方法は?ディープインシステムの解像度を設定する方法
-
Centos7 dns service named installation, encountered ** server can't find xxx.com: NXDOMAIN問題
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
Linuxでファイルパーミッションを与えるには?Linuxでファイルに実行可能なパーミッションを追加するためのヒント
-
Linux NICがRTNETLINK answersというエラーで起動できない場合、どうすればよいですか?ファイルが存在するか?
-
deepinv20 linux ファイルのサフィックスを変更する方法は?Linuxでファイルの拡張子を変更する方法
-
deepin linuxからmacosx仮想マシンに直接ファイルをドラッグ&ドロップする方法は?
-
Deepin20システムのフォントを設定するには?Deepin端末のフォントサイズを設定する方法
-
[解決済み] Linuxでデータファイルから最初の列(実際には行名)を削除する方法は?
-
[解決済み] bash sh - command not found [重複].
-
[解決済み] 標準エラー出力を /dev/null にリダイレクトする。
-
[解決済み] 複数のPDFファイルを1つのPDFに結合/変換する【終了】。
-
[解決済み] ディレクトリへのシンボリックリンクを削除する