サーバーパスからファイルを読む - bash

サーバーパスからファイルを読む - bash

/tmp/user/abc.txtファイルを読み込み、その内容を変数に保存したいシェルスクリプトにファイルのフルパスを渡しています。

今は以下を使用しています。

export SUBJECT=`echo ${1}`

SUBJECT_1=`cat $SUBJECT`

これは何も印刷しません。また、ファイルの内容には一部の日本語文字も含まれます。

答え1

コードにいくつかのエラーがあります。

  1. ここにはバックティック`がありませんSUBJECT_1=cat $SUBJECT
  2. export SUBJECT=echo ${1}偽の声明だ。それはする必要がありますexport SUBJECT="${1}"
  3. バックティックはサブシェルでコードを実行するため、ファイルの内容は印刷されません。印刷するには、次の行を追加する必要がありますecho "${SUBJECT_1}"

これらの問題を解決すると、コードは機能しますが、考慮すべきいくつかのヒントは次のとおりです。

  1. $(code)バックティックを使用する代わりにサブシェルでコードを実行するには、次のものを使用する必要があります。このスレッド
  2. 次にシェルコードが詰まったときにこれを試してください。これまず、強力なシェルコードデバッグ機能があり、コマンドラインバージョンを見つけることができます。
  3. 変数には常に二重引用符を使用してください。これにより、変数の分割を防ぐことができます。あなたはそれについて読むことができますここ

関連情報