こんにちは。何度もすみません。また質問させて下さい。
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,
なんて書いてみたのですが・・・全然だめのようです。
なかなか良いサンプルコードが見つからなくて・・・。
すみませんが、アドバイスいただけたら、と思います。
宜しくお願いいたします。
No.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は、読んでも難しくてさっぱりわからないんですよね・・・。
でもがんばって読んで勉強します。
今回のスクリプトはとりあえずこれで動きそうです。
本当に助かりました。どうもありがとうございます。
なるほど、起動スクリプトですか・・・
ああいうのをさらっと書けるようになるといいんですけど。。
かんばります!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 放射線治療・リハビリテーション リハビリ系のお仕事についてです。 将来、リハビリ系のお仕事につきたいと思っているのですが PT、OT 1 2022/05/21 20:31
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
- テレビ ひかりTVのBS4K視聴について(テレビ2台目) 2 2022/12/02 20:21
- Visual Basic(VBA) select caseの入れ子 3 2023/03/08 18:48
- Visual Basic(VBA) ワークブック内すべて検索 2 2022/12/20 20:13
- Visual Basic(VBA) ワークシートチェンジで曜日を表示する方法 1 2023/03/04 21:51
- FTTH・光回線 ビッグローブ光とルーターの相性 2 2023/03/18 19:44
- Visual Basic(VBA) countifsについての質問 3 2023/03/08 13:45
- 数学 領域の問題について質問です。 実数s, tは,s^2+t^2≦1, s≧0, t≧0 を同時に満たし 3 2023/05/18 20:59
- 経済学 これカバーなし購買力平価の式らしいのですが、 iが1年後の自国の金利で、i*が外国の1年後の金利で、 3 2023/06/08 17:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
exeファイルを実行するとコマン...
-
「読み取りと実行」と「読み取...
-
VB.NETでのDOSコマンドを実行に...
-
バッチで実行するVBScriptから...
-
【VB.NET】exeを実行すると「発...
-
複数のbatファイルを自動実行し...
-
Excel(エクセル) VBA プロシー...
-
VBscriptが起動しない?
-
Excelのセルの内容をコマンドプ...
-
[VBScript]ファイルの削除
-
Excel VBA ステップインが途中...
-
HP PROBOOK 450G でbat ファイ...
-
バッチファイルでクリップボー...
-
OCXが読み込めない
-
メッセージを他のPCに出したい
-
vbscriptを用いて他のVBSファイ...
-
pythonスクリプトを管理者権限...
-
バッチファイルの内容を表示さ...
-
ネットワーク名が見つかりません
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
「読み取りと実行」と「読み取...
-
exeファイルを実行するとコマン...
-
VBscriptが起動しない?
-
バッチファイルの内容を表示さ...
-
Excel VBA ステップインが途中...
-
エクセル フォルダの画像を画...
-
バッチファイルが不正終了して...
-
PDFファイルを開き、印刷し、閉...
-
複数のbatファイルを自動実行し...
-
[teraterm] waitコマンドで停止...
-
VBScriptでコマンドプロンプト...
-
ネットワーク名が見つかりません
-
Excel(エクセル) VBA プロシー...
-
Access の VBA 実行中に他の操...
-
VB.NETでのDOSコマンドを実行に...
-
Excelのセルの内容をコマンドプ...
-
VBS実行時にコマンドプロンプト...
-
VBA 既に開いているBookに継続...
-
メッセージを他のPCに出したい
おすすめ情報