[解決済み] IFS=$' \n' の正確な意味は何ですか?
2022-07-11 01:43:28
質問
以下の例で
IFS
環境変数を改行文字に設定している場合...
IFS=$'\n'
- は何をするのですか? ドル記号 とは まさに ?
- この特定のケースで何をするのですか? の場合、どうなるのでしょうか?
- この特定の使用法についての詳細をどこで読むことができますか (Google は検索で特殊文字を許可しておらず、それ以外の方法で何を探せばよいのかわかりません)?
私は
IFS
環境変数が何であるか、そして
\n
という文字が何であるか(改行)を知ることができますが、次のような形式を使えばいいのではないでしょうか。
IFS="\n"
(これは動作しません)とすればよいのでは?
例えば、あるファイルの全行をループしたいので、forループを使いたい場合、こんな感じになります。
for line in (< /path/to/file); do
echo "Line: $line"
done
しかし、これは
IFS
が改行文字に設定されていない限り、正しく動作しません。動作させるためには、こうする必要がありますね。
OLDIFS=$IFS
IFS=$'\n'
for line in (< /path/to/file); do
echo "Line: $line"
done
IFS=$OLDIFS
注意
同じことをするための他の方法は必要ない。すでに多くの他の方法を知っている... 私はそれについて興味があるだけです。
$'\n'
と誰かが私にそれについての説明を与えることができるかどうか疑問に思いました。
どのように解決するのですか?
通常は
bash
は文字列リテラル内のエスケープシーケンスを解釈しません。ですから、もしあなたが
\n
と書くか
"\n"
または
'\n'
という文字がありますが、これは改行ではありません。
n
(最初の場合) またはバックスラッシュの後に文字
n
(という文字が続きます(他の2つの場合)。
$'somestring'
は
の構文で、文字列リテラルにエスケープシーケンス
. そのため
'\n'
,
$'\n'
は実際には改行です。
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] シェルで、「2>&1」はどういう意味ですか?
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] JavaScriptの変数のスコープとは何ですか?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] あるディレクトリにあるすべてのコード行を再帰的にカウントするにはどうすればよいですか?
-
[解決済み] "お知らせ 未定義変数"、"Notice: Notice: 未定義のインデックス", "Notice:未定義のインデックス", "Notice."。PHPを使用した「未定義のオフセット
-
[解決済み] Colorized grep -- マッチをハイライトしてファイル全体を表示する
-
[解決済み] シェル(BASH/ZSH/SH)でファイルの絶対パスを取得する方法を教えてください。
-
[解決済み】bashで1つのコマンドでシェル変数にデフォルト値を割り当てる。
最新
-
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で文字列をデリミターで分割するには?
-
[解決済み] Bashでファイルの中身をループする
-
[解決済み] 特殊なドル記号のシェル変数とは何ですか?
-
[解決済み] 複数行の出力をBash変数に取り込む
-
[解決済み] 現在の日付と時刻を句読点を使わずに表示する
-
[解決済み] 指定した名前のDockerコンテナが存在しない場合のみ、Bashコマンドを実行するにはどうすればよいですか?
-
[解決済み] bashでalt + numericを押すと(arg [numeric])と出ますが、これは何でしょう?
-
[解決済み] find "の結果をカウントするのに最適な方法は何ですか?
-
[解決済み] unset の使用と変数への空の設定
-
[解決済み] MSYSでフォルダを閲覧する