[解決済み] Bashのバックティックとブレース
2023-05-10 18:37:41
質問
回答しようとしたとき
この質問
を使おうと思っていました。
${}
という記法を使おうと思っていました。ここで何度もバックティックよりも望ましいと見てきたからです。
しかし、試しに
joulesFinal=${echo $joules2 \* $cpu | bc}
メッセージを受け取りました
-bash: ${echo $joules * $cpu | bc}: bad substitution
しかし
joulesFinal=`echo $joules2 \* $cpu | bc`
は問題なく動作します。では、他にどのような変更が必要でしょうか?
どのように解決するのですか?
この
``
はCommand Substitutionと呼ばれ、以下と同等です。
$()
(括弧)を使っている間に
${}
(中括弧)を使っています。
つまり、これらの式はすべて等しく、"中に置かれたコマンドを解釈する"を意味します。
joulesFinal=`echo $joules2 \* $cpu | bc`
joulesFinal=$(echo $joules2 \* $cpu | bc)
# v v
# ( instead of { v
# ) instead of }
一方
${}
の式は変数の代入に使われます。
しかし、バックティックは非推奨であることに注意してください。
$()
はPOSIX互換なので、後者を選ぶべきでしょう。
から
man bash
:
コマンド置換 は、コマンドの出力が コマンド名に置き換えることができます。2つの形式があります。
$(command) or `command`
また
``
は扱いが難しく、例えば入れ子にすることはできません。以下のコメントを参照し、また
なぜ $(...) が
...
(バックティック) よりも優先されるのはなぜですか?
.
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Bash prints リテラルの改行をエコーする \n
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] Bashでコマンドライン引数を解析するには?
-
[解決済み】Bashでファイル名と拡張子を抽出する。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】シェルスクリプトでバックチックの代わりに$()を使用する利点は何ですか?
-
[解決済み] Bashの${}と$()の違いについて [重複].
-
[解決済み] シェルプログラミングで「export」は何をするのですか?重複
-
[解決済み] bashのタブ補完はどのように機能するのですか?
-
[解決済み] シェルスクリプトでINI値を取得するには?
-
[解決済み] bash で文字列をエスケープするコマンド
-
[解決済み] 空のディレクトリの検索
-
[解決済み] bashでファイルが存在するかどうかをテストするためのWhileループ
-
[解決済み] bashでsshがwhileループから抜け出す [重複] [重複
-
[解決済み] sed を使ってファイルの名前を大量に変更する