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

■ このスレッドは過去ログ倉庫に格納されています
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
2018/11/21(水) 18:33:47.11ID:UM5ff+tU0
引数取るなら何であれ引数に決まってるだろ
どうでもいいけどさ、その被演算子ってのやめてくんない?
演算子なんて登場してないんだから
2018/11/21(水) 18:55:25.78ID:OLor19Fe0
operandって被演算子のことだと思うんだけど。
まあ「--」を引数と見るってことね。ありがとう。
2018/11/21(水) 19:16:12.30ID:UM5ff+tU0
だからそのoperandが出てこないって話
2018/11/21(水) 20:33:17.21ID:cLxfY5McM
operand
https://wa3.i-3-i.info/word13306.html
2018/11/21(水) 21:01:13.07ID:UM5ff+tU0
>>696
はい。どうも。 exprとか引数が何かしらの式であるものは
演算子以外の部分が被演算子(オペランド)になることはありえるけど
なんでもかんでもオペランドなわけではないよね
2018/11/21(水) 21:31:00.38ID:OLor19Fe0
ああ。ほんとだ。The Open Groupの文書を参考にする限り
somecmd -c XXX FILE
とあった場合被演算子はFILEでXXXはオプション引数だね。勘違いしてた。
2018/11/24(土) 12:14:20.49ID:I8hvszb00
Qiitaで知ったけどこの構文便利だね。
${VAL+:} false
↑これで$VAL変数が空文字だろうが定義されてさえいれば真,そうでなけば偽。
今まで[ -n ]と[ "x$VAL" = "$VAL:-x" ]とか組み合わせてたけどこれでスッキリ解決。
コマンド呼び出しも少なくなるから微妙に処理速度も上がるだろうし。

ただ難点は,test構文を用いた方法より遥かに難読になること。${VAL+:} false←これで何をやってるかなんて注釈がないと分からん。
2018/11/24(土) 12:41:53.30ID:emfrr2Lm0
>>699
なんだそりゃ? 相変わらずのQiitaクオリティなのか?

変数が定義されているかの一般的なチェック方法はこれだろ?
[ "${VAR+1}" ]
2018/11/24(土) 14:04:21.10ID:jPqivsUqa
定義されてるかどうかってどういう時に用いるんだ
C言語やってた頃は二重インポート防ぐためとかやってたけど同じような感じ?
2018/11/24(土) 14:31:59.62ID:I8hvszb00
>>700
「一般的」かどうかは知らない。それともその形式がより多く使われているという根拠があるのかな?

いずれにしてもコロンコマンド(と変数展開)がシェルのビルトインとしてPOSIXで定められているのに対して
testコマンドはPOSIXにおいては外部コマンド。尤もBashやZshではシェルに組み込まれてるけど。
外部コマンドを呼び出すのとシェルの内部でコマンドを展開するとでは後者のほうが早いよ。
君にとっては「Qittaクオリティ」でも,速度が優秀なのは君が提示したほうじゃなく「Qittaクオリティ」の方。
2018/11/24(土) 14:49:43.89ID:I8hvszb00
dashでも[はシェル組込だね。実際testユーティリティを外部コマンドに頼ってるシェルって今現在存在しているのだろうか。
Heirloom shellあたりだとありえそう(試してないけど)
2018/11/24(土) 15:54:11.31ID:emfrr2Lm0
> 「一般的」かどうかは知らない。それともその形式がより多く使われているという根拠があるのかな?
ぐぐればコレばっかり見つかるはずだが?

> testコマンドはPOSIXにおいては外部コマンド。尤もBashやZshではシェルに組み込まれてるけど。
全てのシェルで [ はビルトインだ
シェルに組み込まれていないというものがあれば教えてくれ
2018/11/24(土) 16:18:05.53ID:emfrr2Lm0
falseコマンドはPOSIXでシェルのビルトインではない
もっともどのシェルでもビルトインになっているが
2018/11/24(土) 17:26:54.56ID:I8hvszb00
>>704
> ググればこればっかり
ほう,それは知らなかった。pws=0にしたGoogle検索英語版では${VAR+:}が多いように見受けられるな。
> 全てのシェルで[はビルトイン
test(1)ユーティリティは,あくまでPOSIXにおいて組込ユーティリティじゃないという話。
根拠はこれ: http://pubs.opengroup.org/onlinepubs/9699919799/idx/sbi.html
> シェルに組み込まれていないというものがあれば教えてくれ
ご査収ください→https://www.unix.com/man-page/v7/1/sh/#neo-man-page-output
2018/11/24(土) 17:36:50.26ID:b7tmfxF40
>>706
falseがビルトインって話じゃなかったの?w
2018/11/24(土) 17:38:22.47ID:b7tmfxF40
> ほう,それは知らなかった。pws=0にしたGoogle検索英語版では${VAR+:}が多いように見受けられるな。

"${VAR+:}"で検索したけど5件しかなかったよ?

"${VAR+x}"だと約 3,410,000 件
2018/11/24(土) 17:41:59.00ID:I8hvszb00
ちなみに「すべてのシェル」と言うくらいなのだから,
主要でありPOSIX互換を謳うGNU Bash, Zsh, Debian Almquist shell(dash), yash, MirOS ksh(mksh)くらいについては知らべてるとは思うものの,
POSIXの記述を知らないようなので,
一応,これら5つのシェルがtest(1)ユーティリティを組込コマンドにしているという根拠を以下に挙げておこう。
GNU Bash: https://www.gnu.org/software/bash/manual/html_node/Bourne-Shell-Builtins.html#Bourne-Shell-Builtins
Zsh: http://zsh.sourceforge.net/Doc/Release/Shell-Builtin-Commands.html#Shell-Builtin-Commands
dash: http://man7.org/linux/man-pages/man1/dash.1.html
yash: https://yash.osdn.jp/doc/ja/#alpha-order
mksh: https://www.mirbsd.org/htman/i386/man1/mksh.htm
2018/11/24(土) 17:44:33.96ID:I8hvszb00
>>707
以下>>704の書き込みを引用
> > testコマンドはPOSIXにおいては外部コマンド。尤もBashやZshではシェルに組み込まれてるけど。
> 全てのシェルで [ はビルトインだ
> シェルに組み込まれていないというものがあれば教えてくれ

ということでfalse(1)ユーティリティの話ではなく
test(1)ユーティリティがシェル組込みかどうかという話でした。
2018/11/24(土) 17:47:23.27ID:I8hvszb00
ちなみにfalse(1)ユーティリティもPOSIXにおいてシェル組込みとして定められている訳ではない。
2018/11/24(土) 17:49:01.92ID:362BcdsM0
となると処理速度的にはどっちが良いの?
2018/11/24(土) 17:50:38.66ID:b7tmfxF40
いや、俺が言ったことを復唱されてもこまるんだがw

ちなみにビルトインかどうかはPATHを空にして実行できるかどうかでわかるよ
builtinやtypeがないシェルもあるからね
2018/11/24(土) 17:51:02.76ID:b7tmfxF40
>>712
大差なし
2018/11/24(土) 18:05:17.83ID:I8hvszb00
>>712
大差ないけど,ただ,もしもPOSIXで定めらていないのを理由にしてtest(1)ユーティリティを組み込んでいないシェルがあったとして
そのシェルにおいては変数展開(これは確実にシェルが仕事する)のほうがtest(1)ユーティリティをforkしてexecするより若干早いので
速度は${VAR+:}のほうが上。
2018/11/24(土) 18:06:48.53ID:I8hvszb00
>>713
typeはPOSIXで定められているので,もしないシェルがあればPOSIX互換ではない。
つまり「ビルトインコマンド」なんていう概念はないかもしれないので,そんなことを調べるのは無駄に思えるな。
2018/11/24(土) 19:13:13.38ID:b7tmfxF40
へー、poshはPOSIX互換じゃなかったのか

>Debian Policy に準拠した普通のシェル
>posh は、pdksh の軽装版であり、Debian ポリシーの準拠を目指し、 いくつかの特別な機能を付け加えたものです。
>
>警告: Debian の /bin/sh スクリプトの多くは、実際はポリシーに準拠していると は限りませんので、
>posh を /bin/sh として使うと破損箇所が判明するかもしれま せん。

って書いてある割に大したことないな
2018/11/24(土) 20:44:49.31ID:I8hvszb00
まあ ここまでPOSIX POSIX連呼しときながらアレだけども,
別にシェルってPOSIX shに準拠してる必要性なんてまったくないよなw
poshも「POSIX互換じゃないシェル」として,便利に使えるようになればそれでいい。
実際,俺は使っていないものの,同級生にはfishを勧めてる。
2018/11/24(土) 20:55:10.29ID:32uSmIhta
ポジクッス警察がいるから多少はね?
2018/11/24(土) 20:57:06.31ID:b7tmfxF40
それじゃ俺も言っておかなきゃいかんのか?

まあ ここまでPOSIX POSIX連呼しときながらアレだけども,
別にシェルってPOSIX shに準拠してる必要性なんてまったくなくて
POSIXに準拠していなくても、現実にPOSIX互換の標準シェルとして
デフォルトシェルで採用されているのであればそれに対応すべきだと思っている

だから、dash、(busybox)ash、bash、ksh あたりは対応必須で
zsh、posh、yash、あたりは優先度が低い。mksh、pdkshは
デフォルトシェルとして採用されている事例があるのかわからんが
2018/11/24(土) 20:58:50.94ID:b7tmfxF40
俺は現実主義なんでね。標準とか仕様がどうこうよりも
現実としてそれは選択肢にならないのであれば、選択肢にならないし
非標準でも選択肢としてなり得るのならそれを使う
2018/11/24(土) 23:48:23.42ID:u7Q7GReoM
ポジコレ棒で葬ってやんよ
2018/11/25(日) 07:40:30.00ID:rsPEFWOD0
もっと面白い書き込みして、どうぞ。
2018/11/25(日) 12:05:00.87ID:Yow09MRJ0
>>715
その前提条件で言えば false も組み込みじゃないかもしれないのだから同じじゃないの?
変数が定義されていれば false は実行されないけど、未定義かどうかを確認したいから
実行するわけで。
ただ、fork and exec に関して言えば test コマンドが 1.1ms, false コマンド は 0.8ms 程度
(コマンドバイナリのテキストセクションがメモリキャッシュされている場合で、実行環境は
Intel Xeon E3-1220 3.1GHz/Linux kernel 4.15.0/glibc 2.27)。何千回も実行する様なケース
なら違いが分かるかも。
2018/11/25(日) 12:16:11.88ID:wMoGqmE60
POSIXでビルトインの方が速いって決まってるんだっけ?
2018/11/25(日) 12:29:43.54ID:nRWf72Y30
>>725
外部コマンドはforkが発生するから結果的にビルトインの方が速い
2018/11/25(日) 12:32:22.92ID:wMoGqmE60
いやPOSIXでどうなっているかの話だよ
728デフォルトの名無しさん (ワッチョイ ffd2-8s0F)
垢版 |
2018/11/25(日) 13:54:00.21ID:eaHucPl10
なんやこのバカwwww
2018/11/25(日) 14:01:17.29ID:nRWf72Y30
>>727
下のページをざっと見る限り規定されてないように思う
オーバヘッドがある分遅いのは自明だからPOSIXが云々は関係ない話だとは思う

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
2018/11/25(日) 18:36:53.00ID:74eaLfxV0
多分,なんでもPOSIX POSIXと言うので,からかってやろうとしたんだろう。
「お前の主張は全部POSIXに起源があるのか?」ってな。
まあ結果としてはネタにマジレスの嵐だった訳だがw
731デフォルトの名無しさん (オッペケ Sr47-ZXAZ)
垢版 |
2018/11/26(月) 12:25:16.95ID:RdZe26lCr
必死すぎる言い訳のせいで逆にひかれてしまったパターンw
732デフォルトの名無しさん (アメ MMe7-9KmN)
垢版 |
2018/11/26(月) 12:32:05.28ID:mqDjQZG/M
とっても惹かれます
2018/11/26(月) 12:44:40.04ID:sgq1LDCF0
スプラッターやめろ
2018/11/26(月) 17:46:57.26ID:M+tccdiG0
echoでログを残そうとしています。
echo "メッセージ" > ログファイル

で、ログファイルはNASに保存しようと考えているのですが
NASがなんらかの原因で見えない場合、bashだと無視して処理を続けるのに
cshだと、echoのとこで止まってしまいます。
止まらないようにする方法とかないですか?
2018/11/26(月) 20:45:32.63ID:dIk0IZ2NM
>>734
その「何らかの原因」を解決するのが先決じゃねーの?
素知らぬ顔でログ残ってないならそこで止まってもらった方が良くね?
736デフォルトの名無しさん (ワッチョイ 6f9f-KQkZ)
垢版 |
2018/11/27(火) 00:51:26.43ID:IxTjeZ9T0
>>734
NFSならマウントオプションである程度はなんとかなるのでは?
Windowsの共有(cifs)の場合は知らない。しかし何かオプションあると思うけどね。
2018/11/27(火) 02:59:30.28ID:vfcz+SK40
なぜかアホの子ってnfsをローカルファイルシステムと同様に信用しちゃうよね
2018/11/27(火) 07:15:38.13ID:EYppSGpIM
唐突にお前の仲間の話しされても困る
2018/11/28(水) 08:43:07.23ID:lgqPOMnJr
>>737
信用ってのは常につながると思っちゃうってこと?
それはいかんね
2018/11/28(水) 09:03:44.81ID:6Gc6vrWs0
NFS特有のエラーがあるとは思いもしなかったりするんだよな。
挙げ句の果てにファイルロックがうまく動かないとか言い出す。
2018/11/28(水) 12:41:41.17ID:V/2Czdkr0
所詮、ネットワークを介したファイル共有だからね
ディスクはアクセスできない = 故障 と考えていいけど
ネットワークは一時的な切断やエラー、大きな遅延が想定される
だからリトライやタイムアウトといった処理を行う

通常のディスクアクセスを行うコードは、こういった
ネットワーク特有の事象について考慮されてない場合が多い

だから(NFSの設定により)ネットワーク通信が正常に完了
できるまで待ち続ける(プログラムはタイムアウトしないのでフリーズした状態)
もしくは一時的な接続不良でエラー終了したりする
2018/11/28(水) 20:10:37.32ID:N04UITTm0
シェルスクリプトの関数の名前の直後の括弧って あれはshに
「これは関数の名前ですよ」って教えるためのものっていう認識でOK?
foo() {
echo foo
}
↑こういうのの「()」。なんかCやらと同じように引数の指定とかができたらいいのにと
初心者ながら思ったんだけど そういう訳でもなさそうだし。
2018/11/28(水) 20:12:50.29ID:aLWNsKMba
えっ
744デフォルトの名無しさん (アウアウウー Sa27-ml8p)
垢版 |
2018/11/28(水) 20:22:26.38ID:wHjpMIAFa
引数は $1, $2 とかで受け取る。
呼び出す側は普通のコマンド実行のように書く。
2018/11/28(水) 20:31:09.87ID:Vqd4vFOqM
>>742
ともかく ( とか、普通使わない文字を挟んでおかないと、
foo {
だとただの引数になっちゃうから。
2018/11/29(木) 13:01:23.15ID:Msn7clch0
>>745
なるほど。
「(」はサブシェルの開始だと思ってたけど
そうでもないんだね……。
シェルの構文ってちょっと難しいことすると途端に複雑怪奇になるな(俺の頭の問題かも知れんがw)
対話的な利用を前提にした設計だから仕方無いとは言え、Pythonみたいに対話状態でもバッチ状態でも扱いやすくできなかったのかな。
2018/11/29(木) 13:04:56.47ID:lCOis1qI0
小学生が政治語ってるのを聞いてる気分だ
2018/11/29(木) 14:34:26.85ID:Msn7clch0
「どうして解散するですか?」
2018/11/29(木) 15:57:37.21ID:QFUJhwUI0
Python を使えばいいんじゃないかな
2018/11/29(木) 16:07:41.49ID:lCOis1qI0
Pythonは構文が複雑怪奇すぎる
かっこは関数呼び出しの引数の開始だと思っていたのに
関数を定義するときにも使うらしい

とかいうだろうな
751デフォルトの名無しさん (アメ MMff-egAi)
垢版 |
2018/11/29(木) 16:11:55.77ID:qd4rCcG0M
wwwww
752デフォルトの名無しさん (アウアウウー Sa47-2q9Y)
垢版 |
2018/11/29(木) 19:19:50.88ID:8tueZiBHa
そしてあらゆる言語が気に入らず、新たな言語がまた一つ作られるのであった。
753デフォルトの名無しさん (アメ MMff-egAi)
垢版 |
2018/11/29(木) 19:39:24.56ID:qd4rCcG0M
− 世界には1,400もの競合するプログラミング言語があった −

「1,400だって!? バカげてる! み全ての用途をうまくこなす統一言語の開発が必要だ!」
「そのとおりだわ!」

やがて…

− 世界には1,401もの競合するプログラミング言語があった −

https://imgs.xkcd.com/comics/standards.png
2018/11/29(木) 20:23:55.28ID:DaeVxseX0
>>753
男女の仲違いでもう2個増えるんだろ?
2018/11/29(木) 20:25:46.41ID:dRsmoy+za
新しいのを作るんじゃなくて既存のを潰さないとな
756デフォルトの名無しさん (ワッチョイ 9ad2-uhYH)
垢版 |
2018/11/29(木) 20:45:38.03ID:C+POVdju0
(中二なんかな・・・)
2018/11/29(木) 21:43:22.71ID:Msn7clch0
中二だろうがなんだろうが良いソフトウェアを作ってくれればそれでいい。
758デフォルトの名無しさん (ワッチョイ 9ad2-uhYH)
垢版 |
2018/11/29(木) 22:17:13.73ID:C+POVdju0
>>757
そおやってすぐ他人に頼ろうとするからいつまでたってもクズなんやおまえ
2018/11/30(金) 01:40:39.33ID:ZZJKHSVT0
ワロタ
760デフォルトの名無しさん (ワッチョイ b69f-BnCY)
垢版 |
2018/11/30(金) 08:21:31.28ID:ShAjvwZw0
目的を見失ってるよね
道具であるはずの言語そのものを作り出すってのは
だからって、なんでもアセンブラってわけにもいかないが
761デフォルトの名無しさん (アウアウウー Sa47-2q9Y)
垢版 |
2018/11/30(金) 09:15:03.33ID:vx8Iixcxa
タイヤは永遠に発明され続ける。
2018/11/30(金) 09:32:04.72ID:n+1J2GMZa
(車輪じゃね?)
763デフォルトの名無しさん (アウアウウー Sa47-2q9Y)
垢版 |
2018/11/30(金) 09:38:04.79ID:vx8Iixcxa
あ、そうか。まあどっちでもいいが。
2018/11/30(金) 09:40:18.92ID:5+dLrTA80
現代だって刀鍛冶とかいるじゃん
2018/11/30(金) 09:53:55.88ID:pEng5xY00
発明、改良と生産は違う

タイヤ、車輪で行われてるのは、発明ではなくて生産
発明こそ行われなくとも、小規模な改良は続いている

刀鍛冶も生産だろう。改良している人がいるのかは知らんが。

様々なデザインの洋服など、改良しているわけじゃないが
新しいものを作るっていうのはなんというべきだろうね
生産なんだが古い、新しいという概念はある。
だけど好みの違いでしか無いので改良とも違う

多くのものは改良されて続けているが、改良するためには
まず生産能力が必要。同じものを作れなければ改良はできないだろう
2018/11/30(金) 10:02:51.33ID:pEng5xY00
今の言語は最高とまでは言えない。
いつしか高級言語への進化が止まって、
単なる改良しか行われなくなってしまった

高級言語を超える、超高級言語が必要
俺にはそのアイデアがあるが、なにぶん能力がないw
目的は、超高級言語の開発だが、そのためには
まず言語が作れるようにならないといけないだろうな


ちなみに超高級言語のアイデアとは、現在設計書として
自然文で書いてあるものをプログラム言語として
記述可能にしようというもの。今の言語はモジュールやクラス構造までは
プログラム言語で記述できるが、プロジェクト全体の構造までは記述できない

例えば、Railsなどのフレームワークのmodelsやcontrollersといったディレクトリ構造は
プロジェクトで決まっているにもかからわず、ドキュメントで書くしかない。
だからmodelsに置くべきものをcontrollersにおいたり、modelsではやっては
いけないような処理をやることが出来てしまう。コンパイルエラーにも実行時エラーにもならない
2018/11/30(金) 11:38:14.68ID:n+1J2GMZa
3行で
768デフォルトの名無しさん (アウアウウー Sa47-2q9Y)
垢版 |
2018/11/30(金) 12:29:51.33ID:vx8Iixcxa

高級言語が
必要
769デフォルトの名無しさん (オッペケ Sr3b-xhs3)
垢版 |
2018/11/30(金) 12:30:21.78ID:+/lt4tPpr
タイヤと
車輪は
同じもの
770デフォルトの名無しさん (アウアウウー Sa47-2q9Y)
垢版 |
2018/11/30(金) 12:47:31.33ID:vx8Iixcxa


止めよう
2018/11/30(金) 13:04:32.40ID:iEacaeBh0
実は
CASEツール
です
2018/11/30(金) 15:46:57.55ID:ZZJKHSVT0
それずっと前にKnuthが実践してた文芸作譜と同じじゃね?
そしてアレは超絶面倒な作業。
2018/11/30(金) 23:23:00.81ID:MkfLpznc0
>>766
>高級言語を超える、超高級言語が必要
ちょっとワクワクしてしまいましたことを、ここに告白いたします
2018/12/01(土) 01:32:04.95ID:3WCvWAVjM
言語に縛られてるから駄目なんだよ

とか言ってみる
2018/12/01(土) 02:53:09.42ID:7CoKqMj50
「縛られるのが好き」ってプログラマ、結構多いんですよ

とか言ってみる
776デフォルトの名無しさん (オッペケ Sr3b-xhs3)
垢版 |
2018/12/01(土) 07:47:52.11ID:U3mK8vlPr
下ネタはもっと堂々と言わな逆にいやらしく感じるで
2018/12/01(土) 10:18:14.73ID:Ly5JuDld0
全部縛ってヤってなんぼだと思うんです。

とか言ってみる。
2018/12/01(土) 10:47:37.07ID:Km1sjdO20
お前らくだらない話ばっかり盛り上がるな
779デフォルトの名無しさん (オッペケ Sr3b-xhs3)
垢版 |
2018/12/01(土) 12:34:48.97ID:U3mK8vlPr
さほど盛り上がっとらんやろw
人と関われよw
2018/12/02(日) 02:44:47.66ID:+c90NOTB0
まあ 使える言語は多いほうが手広いわな
2018/12/02(日) 17:31:01.53ID:OYZHkh2Or
>>776
知ってる一つの言語でなんでもしようとしちゃう
っていう意味かとおもてた
2018/12/02(日) 18:30:06.74ID:RWr+AACs0
自由に安くやってが最も困る。
2018/12/04(火) 18:22:49.34ID:VVlGsdy50
find(1)ユーティリティの速度に関しての疑問なんだけど
https://linuxjm.osdn.jp/html/GNU_findutils/man1/find.1.html#lbAO
ここに
「検査 -name を -type の前に置いているのは、すべてのファイルに対して stat(2) システムコールを行う無駄を省くためである。」
とある。これは「find(1)は-nameのほうが-typeより処理速度が速い」ということを言っているよね。
実のところ手元ではfindが優秀すぎるのか知らんが-nameを-typeより前に書いても後に書いても速度に変化はなかった。
が 基本的にはfindで複数の条件を指定するときは-nameを先頭あたりに置いたほうがいいのかな。
findのソースコードを見てないので推測になるが-permや-newerもstat(2)を実行してるぽいので-nameより遅い筈。
2018/12/04(火) 18:56:51.46ID:bTQB60BC0
statが遅いと言うのも幻想
2018/12/04(火) 19:07:42.58ID:HBlgjyZNM
最近のファイルシステムはreaddirでタイプが取得できるよ
786デフォルトの名無しさん (ワッチョイ 938a-+wPc)
垢版 |
2018/12/06(木) 00:12:43.36ID:pQ33EIUW0
>>783
http://linuxjm.osdn.jp/html/GNU_findutils/man1/find.1.html#lbAE
-Olevel
1
これはデフォルトの最適化レベルであり、伝統的な動作に当たる。 式を並べ替えるとき、ファイル名にのみ基づいた検査 (たとえば、 -name や -regex) が先に実行されるようにする。
2018/12/06(木) 09:10:09.33ID:cC0kDT7D0
>>786
へえ!そうなんだ。
ってことはGNU/Linux使ってる限りは順番はどうでもいいんだな
ありがとう。
2018/12/06(木) 15:10:37.27ID:cC0kDT7D0
引数に一律にコマンドで操作を施したあと、それらをもう一度引数として扱うにはどうすればいいかな
$ a.sh arg1 arg2 arg3
みたいに起動されたとして$1,2,3にはarg1,2,3が入ってる。
これを$(echo $1 | tr '[:lower:]' '[:upper:]')みたいなコマンド置換を使ってARG1,2,3みたいに変形させる。
問題はこの後にa.shの中の別のコマンドに
somecmd "$@"
のような形でARG1,2,3を与えたいってこと。
while [ $# -eq 0 ]とshiftを使う普通のやりかたではループを抜けた後に$@が空になってしまう。
どうにかして引数の構造を維持したいんだけども……。
789デフォルトの名無しさん (ワッチョイ e1e1-eDAb)
垢版 |
2018/12/06(木) 16:06:47.11ID:59uVculK0
>>788
eval set -- $(printf ' "$(printf "%%s" "$%d" | tr "[:lower:]" "[:upper:]")"' $(seq $#))
2018/12/06(木) 16:38:57.36ID:cC0kDT7D0
>>789
ありがとう。
2018/12/12(水) 21:07:46.42ID:7+bnD1C/0
ここかどうかわからんのだけど、メールの添付ファイルのテキストCSV部分を切り出してDB格納しようと思ったら、
シェルスクリプトでヘッダから切り出すしかない?
2018/12/12(水) 21:36:28.16ID:xr4it+i10
そういう専用ツールがないんだったらそうだろうな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況