※ ChatGPTを利用し、要約された質問です(原文:RedHatのシェルスクリプトで・・・・)
RedHatのシェルスクリプトでファイルの読み込みとデータの分割について悩んでいます
このQ&Aのポイント
RedHat7.0でシェルスクリプトを作成している初心者です。ファイルの読み込みとデータの分割について悩んでいます。実行場所の指定とデータの区切り方がうまくいきません。
実行場所が/tmpであるため、ファイルのパスの指定がうまくできずにエラーが発生しています。ファイルのパス指定についてアドバイスをいただきたいです。
データが空白区切りの場合はうまく処理できますが、カンマ区切りの場合はうまくデータを分割できません。-dオプションを使ってデータの区切り方を指定する方法を教えていただけると助かります。
こんにちは。何度もすみません。また質問させて下さい。
RedHat7.0でシェルスクリプトを作成しているのですが、
初心者の為(Linux自体よくわかってません)悪戦苦闘中です。
今回つまづいたのは、
#!/bin/bash
FName=/home/my/aaa.txt
read str1 str2 str3 <$FName
とした時、まず、実行している場所が
/tmp
な為、FNameに/home/myとやるとファイルがありません、
と言われてしまいます。
../home/myでもだめなんですね~・・・どうしてでしょう・・・。
もうひとつ、
aaa.txtの中身に記述されているデータが、空白区切りの時は
うまくstr1 str2 str3に値が入ってくれるのですが、
カンマ区切りデータが入っていると値が入ってくれません。
自分なりに調べて-dを使うと出来るっぽい所までは
わかったのですが、具体的な使い方がいまいちわからないのです。
read str1 str2 str3 <$FName -d,
なんて書いてみたのですが・・・全然だめのようです。
なかなか良いサンプルコードが見つからなくて・・・。
すみませんが、アドバイスいただけたら、と思います。
宜しくお願いいたします。
お礼
a-kumaさんおはようございます。回答ありがとうございます。 今教えていただいた通りやってみたら動きました! なるほど、ディレクトリに実行権限が無いとだめなんですね~~ 難しいです~~。 カンマ区切りのも無事できました。 manは、読んでも難しくてさっぱりわからないんですよね・・・。 でもがんばって読んで勉強します。 今回のスクリプトはとりあえずこれで動きそうです。 本当に助かりました。どうもありがとうございます。 なるほど、起動スクリプトですか・・・ ああいうのをさらっと書けるようになるといいんですけど。。 かんばります!!