シェルスクリプト総合 その29

レス数が1000を超えています。これ以上書き込みはできません。
2018/09/22(土) 11:53:21.38ID:BBiLRgnj0
!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
シェルスクリプトに関する総合スレッドです。

スレ立て時は以下の文を先頭行に加えて下さい。
後のつけ忘れ防止の為に複数行重ねて追加推奨
!extend:on:vvvvv:1000:512

全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。

前スレ
シェルスクリプト総合 その28
http://mevius.5ch.net/test/read.cgi/tech/1532397676/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
2019/01/26(土) 17:37:42.47ID:t83jnK1u0
錦蛇(python)は入れればあるね。
2019/01/26(土) 21:12:00.09ID:dNFr7KCg0
fishとか
2019/01/26(土) 21:46:39.00ID:VBVSKLLT0
fish言おうと思っとったのに
955デフォルトの名無しさん (ワッチョイ 3dc5-hALj)
垢版 |
2019/01/26(土) 21:48:04.51ID:uSJt/X2/0
俺の方が先にfish言おうとしたんやけどね
2019/01/26(土) 21:53:01.10ID:nfFeNMjGa
俺が言おうとしたのに
957デフォルトの名無しさん (ワッチョイ 3dc5-hALj)
垢版 |
2019/01/26(土) 22:09:06.41ID:uSJt/X2/0
fish知名度高すぎやろwwww
2019/01/26(土) 22:11:42.15ID:Ze1S3jEe0
fish って聞くと x68k の fish の方を連想してしまう
959デフォルトの名無しさん (ワッチョイ 3dc5-hALj)
垢版 |
2019/01/26(土) 22:38:03.41ID:uSJt/X2/0
なんやその受け身の人生アピールw
2019/01/27(日) 01:38:33.38ID:z0hosMYm0
fish、イタリア語でPesciペッシ。
ジョジョで覚えたぞ!
2019/01/27(日) 08:33:27.63ID:Erhv9FPi0
namazuはどう?
2019/01/27(日) 09:14:26.94ID:RsUGZloC0
なんでcatが出てこんのや
2019/01/27(日) 09:16:57.86ID:rwuNPA7J0
950に[ほかにも]とあるから猫は既出でしょ
2019/01/27(日) 17:29:49.17ID:xlSzZYyn0
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_23
ここのNoteに「〈記号〉=〈値〉の形の構文の挙動は未定義である。Kornシェル用いられている」
とあるのですが実際にKornシェルで↑この形の構文はどういう意味なのでしょうか。
965デフォルトの名無しさん (ワッチョイ 415d-FWM4)
垢版 |
2019/01/28(月) 23:54:39.66ID:WFNfoV5R0
あげ
966デフォルトの名無しさん (ワッチョイ 415d-FWM4)
垢版 |
2019/01/28(月) 23:55:04.01ID:WFNfoV5R0
シェルでコマンドの出力結果を(lsなど)データベースに入れたいのですが
どのようにすればいいかわかりますか?
できればその時のIpアドレスも一緒にいれればいいのですが
普通にテキストに入れるには
できないのでしょうか
ディレクトリも入れれば最高です
dbはsqlite3でフィールドはディレクトリ内容とディレクトリの2フィールドにいれたいのです
2019/01/29(火) 00:14:25.22ID:1q8BEqfoM
>>966
シェルスクリプト以前に、手では操作できるのかね?
2019/01/29(火) 00:19:36.77ID:D6lmimQR0
最近くだらん質問しかでなくなったな
2019/01/29(火) 00:58:08.58ID:AnpnZGSz0
sqlite3 をコマンドとして使えるのか?
使えるのなら、そういうコマンドのオプションはあるのか?
sqlite3の説明を読めば?

基本的には、単純な空白区切り、CSV, JSON などでも、DB に入れられるはず

a,b
c,d

こういうCSV, TSV でも、DBに入る
2019/01/29(火) 01:08:07.84ID:Le31BKQs0
くだらん質問に応える暇はないってか
2019/01/29(火) 01:25:19.75ID:RjCLdVoba
暇はあるがやる気はない
972デフォルトの名無しさん (ワッチョイ 4602-wD8z)
垢版 |
2019/01/29(火) 02:49:31.61ID:PUnzDqON0
>>966
CSVにすればこうやって読み込める。
https://qiita.com/j-shimo/items/83febe1992321ba558e4
まあでも Perl とかで DB 接続のモジュール使ってやっちゃった方が簡単な感じがしないでもないが、
簡単と感じるかどうかは主観的な問題。
2019/01/29(火) 03:33:43.84ID:AnpnZGSz0
JSON なら、jq コマンドもある

そりゃ、Ruby などのプログラミング言語を使えば出来るけど、
コマンドだけで、もっと簡単にやりたいのでしょ?
2019/01/29(火) 05:00:03.49ID:AnpnZGSz0
SQLite/SQLiteでCSVを投入(インポート)する方法

https://db.just4fun.biz/?SQLite/SQLite%E3%81%A7CSV%E3%82%92%E6%8A%95%E5%85%A5%28%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88%29%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95
2019/01/29(火) 23:36:53.59ID:sGXg/LAN0
シェル(スクリプト)っていうかシステムの話なんですが
FLOSSまたは無償で使えるOSで kshがデフォルトのログインシェルになってるものってありますか
AIXとかはそうっぽいのですが 買えません。
2019/01/30(水) 03:34:17.22ID:zjoDoxp+0
OpenBSD、Solaris。Solarisはらしい
2019/01/30(水) 09:12:24.71ID:y3itOE16M
ソイレントシステム
2019/01/30(水) 21:50:49.39ID:yhwdEVRM0
くそ。ググっちまったw アニメ用語かよ。

OpenBSDにします。>>976 ありがとう!
2019/02/04(月) 09:19:35.31ID:eH/He5cH0
読むと常にEOFを返すようなファイル(つまり/dev/nullとか)を
あえて「実行」した場合の挙動ってPOSIXやXPGで規定されてるっけ。
知ってる人いたら教えてほしい。

多分大抵の処理系でEACCESが返されて終了,という挙動をすると思うんだけど
怪しい……。
2019/02/04(月) 09:47:05.71ID:lgZw4Iho0
単なるEmpty Fileと、Executableでないファイルを無理やりと混ぜてなくない?
EACCESは後者だろう、中身に(読むと常にEOFを返す)関係なく。普通にそうならないの?
2019/02/04(月) 10:07:13.75ID:lgZw4Iho0
たぶん、
http://pubs.opengroup.org/onlinepubs/9699919799/functions/exec.html
の、RATIONALE だな
2019/02/04(月) 11:51:25.97ID:eH/He5cH0
>>981
ありがとう。
「実行可能形式」でないものを実行した場合はシェルスクリプトとして起動されるんだね。
そして俺はマヌケな勘違いをしていたwもっと後の方の処理…つーか違う段階だった。
http://pubs.opengroup.org/onlinepubs/9699919799/functions/exec.html#tag_16_111_05
たとえば「ディレクトリ」や「(/dev/nullのような)正常でないファイル」が
exec函数によって「実行」されるとEACCESが返って失敗するという訳か。

お騒がせしてすまん。
983デフォルトの名無しさん (ワッチョイ df01-jOWJ)
垢版 |
2019/02/05(火) 21:50:08.24ID:Ogivq0W50
初心者ながら普段のルーチンをshellscriptで解消したく
ソースコードを書いています。
一つつまづいてるので質問させてください。

catコマンドで特定のtxtファイル(シンボリックで作成したエイリアス)を
読み込むのですがNo such file or directoryと出力されます。

terminal上で同じコマンドを実行するとシンボリックリンク先の
txtファイルを読み込み、きちんと動作します。

何か考えられるミスはありますでしょうか?
2019/02/05(火) 22:40:30.10ID:DqsJMgF70
>>983
readlinkで調べてみたら
2019/02/05(火) 22:46:53.04ID:+nC5PPR6H
catの前にpwdとかls -lとかls -lLとか調べることはいっぱいある
2019/02/06(水) 01:03:14.11ID:RxnZVCFR0
取り敢えずsh -xで確認してみれば
2019/02/06(水) 04:34:28.97ID:FgEjt1k50
>>983
うーん。初心者という言葉をそのまま受け取るなら
フルパス・もしくはそのスクリプトからきちんと認識できる位置の相対パス
で指定してる?
ターミナルの上で
$ cd /tmp
として/tmpディレクトリに移動してからそのコマンドを打ってみるとどうなる?

もう一つは「No such file or directory」がcatの出力でない可能性
ファイル自身をコマンドとして認識される位置に持ってきてない?
988デフォルトの名無しさん (アウアウウー Saa3-d53M)
垢版 |
2019/02/06(水) 15:26:28.18ID:Zn5BTEOaa
>>983
cat の打ち間違えやスペースが全角。

ファイル名の文字コード間違い。全角半角だけでなく見た目が同じだがキリル文字の方を使ってるみたいな間違い。

Unicode特有の問題で日本語の平仮名の濁点や半濁点の文字が2文字になっているというのもあるかも知れない。これはよくMacOSとWindows間のファイルをやり取りすると起こる。
画面上は全く同じに見えるファイルが同じディレクトリに2つ並んだりする。しかし文字コードを調べると違っている。
989デフォルトの名無しさん (ワッチョイ df01-PoJv)
垢版 |
2019/02/06(水) 21:18:32.76ID:gnsmOIbq0
レスを頂きありがとうございます。
983です。

readlinkは事前に使用して検証してたのですが、
問題なくシンボリック先を辿れていました。

カレントディレクトリが/tmpの状態でコマンドで
打つとこれも問題なく動作します。

文字もシンプルな英語しか使用してないので
どこが間違っているのかわかりません。

教えて頂いたデバッグ方法を参考にもう少し探ってみます。
2019/02/08(金) 02:22:47.00ID:GNPN10IV0
シェルスクリプト難し過ぎワロタw
もうpythonでいいよ
2019/02/08(金) 02:56:12.30ID:OGIJJ+v/0
シェルスクリプトで何をすると難しくなるのか?
2019/02/08(金) 04:05:44.63ID:0dQnaPPd0
シェルスクリプトがややこしいから、

vagrant, chef, Homebrew などは皆、Ruby で作られている
2019/02/08(金) 04:14:07.33ID:OGIJJ+v/0
その理屈はおかしい

Rubyがややこしいから、
ansibleはPythonで作られてる

と言えてしまう
2019/02/08(金) 04:16:16.40ID:OGIJJ+v/0
> シェルスクリプトがややこしいから、
>
> vagrant, chef, Homebrew などは皆、Ruby で作られている

>>992はなぜこんな言い方をしてしまったのか?

それは、vagrant, chef, Homebrew などは皆、
本来はシェルスクリプトで作るべきものなんだ
と思っているからなのだろう。
2019/02/08(金) 04:55:40.42ID:TBYY3ugx0
brewコマンド自体はシェルスクリプト
2019/02/08(金) 08:43:54.60ID:e7pcoQvna
>>993
それは正しいだろ
RubyDSLがややこしいから、ansibleはYAMLを採用した、もまた正しい
2019/02/08(金) 08:56:59.76ID:OGIJJ+v/0
その理屈でいうと、rbenvはRubyがややこしいから
シェルスクリプトを使ったということになる
2019/02/08(金) 09:01:28.19ID:OGIJJ+v/0
「モジュールが対応してなくてYAMLで設定できないんだけど?」

ansible「シェルスクリプトも使えるで」


なら最初からシェルスクリプトにしろよ(笑)
2019/02/08(金) 09:52:00.86ID:8tcvjc2ZM
シェルスクリプト、マヂややこしい…。すぐ頭から抜ける。
もうpythonでいいよ。
2019/02/08(金) 10:45:14.94ID:h1cIDqYw0
あの、質問いいですか?
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 138日 22時間 51分 54秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。