- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:RedHatのシェルスクリプトで・・・・)
RedHatのシェルスクリプトでファイルの読み込みとデータの分割について悩んでいます
このQ&Aのポイント
- RedHat7.0でシェルスクリプトを作成している初心者です。ファイルの読み込みとデータの分割について悩んでいます。実行場所の指定とデータの区切り方がうまくいきません。
- 実行場所が/tmpであるため、ファイルのパスの指定がうまくできずにエラーが発生しています。ファイルのパス指定についてアドバイスをいただきたいです。
- データが空白区切りの場合はうまく処理できますが、カンマ区切りの場合はうまくデータを分割できません。-dオプションを使ってデータの区切り方を指定する方法を教えていただけると助かります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
またお会いしましたね。では、早速。 > FNameに/home/myとやるとファイルがありません フルパスで書いているのですから、実行している位置には関係ないです。 怪しいのは、読み込もうとしているファイル周りの権限。 /home/my/aaa.txt から中身を読み込む為には、実行ユーザが ・aaa.txt に対して読み込み権限を持っていること ・/home 及び /home/my ディレクトリに実行権限を持っていること が必要です。 > カンマ区切りデータが入っていると値が入ってくれません これについては、こんな感じでできます。 IFS=, read str1 str2 str3 < $FName bash の man でシェル変数のところに記述がありますので、詳細はそちらを どうぞ。 > なかなか良いサンプルコードが見つからなくて・・・ 一番のお手本は、起動スクリプトですよ。/etc/rc0.d とかの下にあるやつ。 絶対動くって保証もあるし。
お礼
a-kumaさんおはようございます。回答ありがとうございます。 今教えていただいた通りやってみたら動きました! なるほど、ディレクトリに実行権限が無いとだめなんですね~~ 難しいです~~。 カンマ区切りのも無事できました。 manは、読んでも難しくてさっぱりわからないんですよね・・・。 でもがんばって読んで勉強します。 今回のスクリプトはとりあえずこれで動きそうです。 本当に助かりました。どうもありがとうございます。 なるほど、起動スクリプトですか・・・ ああいうのをさらっと書けるようになるといいんですけど。。 かんばります!!