
お世話になっております。
最近、シェルスクリプトの学習をし始めた者でございます。
下記のようなCSVファイルをもとに、一行ずつ必要な項目を抜き出し、
実行したいコマンド(cfgutil)に代入するシェルを書いてみたのですが、
下記のようなエラーが発生してしまいます。
※実行コマンド『cfgutil』は、Appleが提供するApple Configuratorという
アプリをCUI環境で操作するコマンドとなります。
繰り返し処理を行う『while read row;do』~『done』自体に問題があると思い、
Qiita等のナレッジサイト等の情報を中心に調べてみたものの、
問題を発見する事ができずにおります。
本件に際し、先達の皆様からご覧になり、下記ソース内に問題点がございましたら
ご指摘・ご鞭撻賜りたく、何卒お願い申し上げます。
▼シェルの実行環境
MacOS 10.14
▼CSVの内容[ファイル名:CONNECT.csv]
1,DeviceNAME1,DeviceID1
2,DeviceNAME2,DeviceID2
3,DeviceNAME3,DeviceID3
4,DeviceNAME4,DeviceID4
5,DeviceNAME5,DeviceID5
▼発生しているエラー
Line10: syntax error near unexpected token `done'
Line10: `done < CONNECT.csv'
▼ソース
#!/bin/bash
cd 'dirname $0
while read row; do
DeviceID=`echo ${row} | cut -d , -f 3`
DeviceNAME=`echo ${row} | cut -d , -f 2`
cfgutil rename ${DeviceID} ${DeviceNAME}
done < CONNECT.csv
No.2ベストアンサー
- 回答日時:
コピペして実行したところ、問題ありません。
# 実際実行してしまうとよくないので、 cfgutil は echo cfgutil にしましたが。
「見えない文字」が混ってないですか?
LANG=C od -t c -t x1 「スクリプトファイル」
を実行してみてください。
スクリプトファイルのダンプが、C言語風の文字と、16進数表示とで出力されます。
改行箇所が \r \n になっているとか
空白のはずの箇所に \? といったエスケープされた文字や、343 200 みたいな3桁の数字が入っているとか、ないですか?
kmee様
ご回答ありがとうございます!
ご指摘頂いた通り、改行コードがCR+LFとなっており、
再度エディタよりLFで保存しなおして、実行したところ、
無事処理が走るようなりました!
的確なご助言を賜りましたこと、重ねて御礼申し上げますm(_ _)m
No.3
- 回答日時:
まだ間違えてますが。
cd `dirname $0` ですよ。コピペできない環境ですか?再度のご指摘ありがとうございますm(_ _)m
質問文面のソースを編集を試みましたところ、
投稿済の文面は編集できないようでしたので、
補足欄において誤表記箇所を抜粋し、
訂正に代えさせて頂いておりました。
補足文面がわかりづらく、申し訳ございません。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
インストールできないですどう...
-
LinuxでWine使うとどのくらいWi...
-
Core 2 Duo の古いパソコンに最...
-
Linux のシェルスクリプトの強...
-
ubuntuのシャットダウンが進ま...
-
ubuntu(linux)のシャットダウン...
-
VirtualBox 6.1 → 7.1 でUbuntu...
-
ssl_request_logの必要性について
-
「トゥ]の出し方
-
bashでシングルクォート内の変...
-
WinSCPでLinux(CentOS6.10)に...
-
私のパソコンでVirtualBoxは使...
-
ログにserver reached MaxReque...
-
ubuntuで デイスク/deb/loopと...
-
ubuntu 24 へのCanon 複合機ス...
-
uefiのマザーボードを旧来のbio...
-
Linux(fedora30)が立ち上がらく...
-
ssh接続しようとしたらエラーメ...
-
Ububtuでファイル共有できない...
-
WineのRufusでデバイスを検知す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
LinuxでWine使うとどのくらいWi...
-
Core 2 Duo の古いパソコンに最...
-
インストールできないですどう...
-
ubuntu(linux)のシャットダウン...
-
Linuxでブートディスクの交換後...
-
bashでシングルクォート内の変...
-
WinSCPでLinux(CentOS6.10)に...
-
ubuntuのシャットダウンが進ま...
-
Linux のシェルスクリプトの強...
-
CentOSが起動時にフリーズ
-
ubuntuで デイスク/deb/loopと...
-
Ubuntu on Xorgのログインについて
-
「トゥ]の出し方
-
Windowsのローカルディレクトリ...
-
apacheでリバースプロキシを設...
-
ubuntu 24 へのCanon 複合機ス...
-
ログにserver reached MaxReque...
-
WineのRufusでデバイスを検知す...
-
ssl_request_logの必要性について
-
「/var/log」内のログの削除の...
おすすめ情報
artoo様にご指摘を頂き、change directoryの末尾のグレイヴ・アクセントが抜けておりましたので、
下記の通り訂正させて頂きますm(_ _)m
【誤】cd 'dirname $0
↓
【正】cd 'dirname $0`