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

レス数が1000を超えています。これ以上書き込みはできません。
2020/11/24(火) 21:37:20.06ID:mbTiTj6s
シェルスクリプトに関する総合スレッドです。

全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。

前スレ: シェルスクリプト総合 その34
https://mevius.5ch.net/test/read.cgi/tech/1597990675/
2021/02/22(月) 14:06:32.02ID:G00ce5gO
ロングオプションっていうかハイフン2個で始まるオプションに関しては統一されてる
変なオプションがあるのはハイフン1個で始まるやつ

もし今からオプションを規格化するとしたら、俺なら
-で始まるのは一文字のオプションだけ。オプションの引数はなし
--で始まるのはロングオプションで、オプションの引数はあって無くてもよいが
ある場合は --long=value みたいに必ずハイフンでつなげること
--long value形式は無しってルールにするだろうな

そうしないとオプションの解析は面倒くさすぎる
2021/02/22(月) 14:28:14.65ID:7dAnGrvt
2020年代にもなってオプション解析を自前でやらなきゃいけないという時代錯誤感よ
2021/02/22(月) 14:49:21.32ID:G00ce5gO
自分でやりたくないならライブラリでも使えば?
2021/02/22(月) 14:53:50.85ID:pc9xVD8t
>>948
今さら「俺」ルールなんかいらんわ。w

https://linuxjm.osdn.jp/html/LDP_man-pages/man3/getopt.3.html

もっとも、これを使うも使わないも、個々の自由。。。
2021/02/22(月) 19:20:10.80ID:G00ce5gO
>>951
俺ルールじゃなくて、既存のルールのサブセットだけどな
まあ知らない人にとっては特殊なルールに見えるんだろうね
2021/02/22(月) 21:20:04.93ID:CSMFeOjN
>>946
シェバンに/bin/bash、 debian/control に Depends: bash って書くがよい
2021/02/22(月) 21:48:09.71ID:G30bzgiW
何か作業しようとするときにログインがbashかそうでないかは重要
2021/02/22(月) 22:36:34.00ID:pc9xVD8t
>>952
それが「俺ルール」なんだっつーの。
アホなの?w
2021/02/22(月) 22:47:21.38ID:DTTWlGhR
>>952
すでにデファクトスタンダードになってるだろう、>>951のがあるんだから「俺なら」ってのはいらないって話じゃないの
シェルスクリプト用には>>915を用いたのがになるだろうし
「俺なら」がGNUとBSDの違い(があるなら)を勘案してのかと思ったら、解析は面倒くさすぎるって言ってるから違うっぽいかな
2021/02/22(月) 22:54:09.71ID:G00ce5gO
>>951はC言語のインターフェースじゃんw
ロングオプションにも対応してないし
2021/02/22(月) 23:05:43.02ID:DTTWlGhR
よく読め。色々よく読め
2021/02/22(月) 23:05:58.69ID:UEjjQNjA
シェルで標準的に使われてるのってgetoptかgetoptsじゃないの?
どっちも微妙だけど
2021/02/22(月) 23:33:06.17ID:gzMW+qbC
getoptはPOSIX準拠じゃないうえにMacで挙動が違うしな
2021/02/24(水) 21:20:00.07ID:5t0N0rwK
現行ディレクトリ直下にあるファイルを日付順に処理したい。
dateの-dオプションと'%s'書式を使ったやりかた
(-dオプションにlsの出力の日付欄を渡して,%s書式でsortに回しやすい形式に変換する)
は思い付くのだが,できればもうちょっと汎用性のあるやりかたでやりたい。
それこそAlpine Linuxでもできるようなやりかた,せめてSUS準拠くらいで。
2021/02/24(水) 21:42:59.94ID:MoKQog7D
lsでソート出力すればいいじゃん
2021/02/24(水) 22:44:33.75ID:2EpFMX6w
Alpine LinuxだのSUS準拠だの言ってるくせに...
2021/02/25(木) 00:58:03.42ID:YHeeVxEb
>>962
lsで日付順ってできたっけ。
しかもaccessとかmodifyとか色々あるけど。
2021/02/25(木) 01:17:21.10ID:/S7F+Ehi
最近はマニュアル読まないで人に聞く豆腐が増えたよな
2021/02/25(木) 02:03:25.10ID:4mFpqJjx
Alpine LinuxだのSUS準拠だの言ってるくせにこのザマとは
2021/02/25(木) 02:26:19.35ID:4mFpqJjx
Unix Version 1 からあるな
逆順は System III にはあるな
興味があって探してみたらあるもんだな
2021/02/25(木) 02:45:06.54ID:4mFpqJjx
逆順は Unix Version 4 からだな
本当に探せばあるもんだなぁ
2021/02/25(木) 08:48:17.15ID:d+c5dEfq
posix ls でググってから質問しろよ
2021/02/25(木) 09:20:54.75ID:ZyJLXTlk
次スレ

シェルスクリプト総合 その36
https://mevius.5ch.net/test/read.cgi/tech/1614212414/
971デフォルトの名無しさん
垢版 |
2021/02/25(木) 12:34:26.08ID:lhusjOX+
ls lt(r)じゃ駄目なのか
2021/02/25(木) 14:28:26.85ID:YHeeVxEb
だれも**なぜか**具体的なこと教えていないので私が。
> -c
> Use time of last modification of the file status information (see XBD <sys/stat.h>) instead of last modification of the file itself for sorting ( -t) or writing (-l).
というわけでPOSIXに従うならls -ct1とかで一覧表示して,
xargs(1)で処理するのはどうかな。

まあ改行を含むファイル名には対処できないが。
2021/02/25(木) 14:29:24.68ID:o6/HxSuB
lいらなくね
2021/02/25(木) 14:31:49.73ID:o6/HxSuB
わざとなのかなんなのか
2021/02/25(木) 14:52:14.25ID:AentelGa
壮大な自作自演
2021/02/25(木) 15:20:30.62ID:o6/HxSuB
ぽいな。マジっぽいしな
2021/02/25(木) 15:39:02.71ID:YHeeVxEb
>>973
え,lなんてどこにある?
2021/02/25(木) 15:46:39.14ID:v3k9zwrF
自作自演でなくても自意識過剰なやつw
2021/02/25(木) 17:28:29.42ID:/S7F+Ehi
Q: 現行ディレクトリ直下にあるファイルを日付順に処理したい。

A: lsでソート出力すればいいじゃん

人にものを教えてもらった時は「ありがとうございました」だろ
2021/02/25(木) 18:29:23.70ID:Le6oxEMx
利奈みんとbotっていい加減停止してほしい
過去の質の悪い情報を、何度も繰り返しツイートすんな
2021/02/26(金) 04:40:12.26ID:pzzMEm8u
Q: 現行ディレクトリ直下にあるファイルを日付順に処理したい。
A: ls -ct1
2021/02/26(金) 04:55:54.66ID:hDnFyj4c
知らなかったくせにプライドだけはいっちょ前だな
謙虚さが無いやつは成長しない
2021/02/26(金) 11:37:38.92ID:pzzMEm8u
えぇ……。
2021/02/26(金) 12:54:01.69ID:X0njcRoR
>>970
こんな殺伐としたスレでもちゃんと立ててくれる人がいる、おつおつ
985デフォルトの名無しさん
垢版 |
2021/02/26(金) 13:35:11.54ID:XgSzjw4v
>>982
謙虚さがないから人の言っていることがわからないのか
単に馬鹿だから色々わからなく人との接し方もわからないのか
どうも後者っぽいな。リアル社会でも人と接するのが難しいレベルな
2021/02/26(金) 18:46:13.32ID:7vDu415h
>>985
いや、俺が教えろっつったら教えろよ
学生時代てめえみたいな陰キャを脅してノート写して貰ってた感じで俺は質問したんだぞ
あ?
2021/02/26(金) 19:53:37.61ID:R5L7j7Jr
それおもしろいとでも思って書いたの?
2021/02/26(金) 20:44:14.99ID:25Vyny5k
>>987
イチビリにかまうな。
かまうのなら、おもしろく。
989デフォルトの名無しさん
垢版 |
2021/02/26(金) 21:39:37.76ID:IMLGfwsq
#!/bin/bash
# >>162
# 日本で生まれたけど国籍は日本ではない外国人が使う「通名」作成スクリプト
JUNG=1
while [ $JUNG -lt 21 ]
do
echo "$JUNG回目"
(( JUNG ++ ))
NAME=$( shuf -e 村 崎 本 田 山 玉 子 -n 1 )
if [ "$NAME" = "玉" ]
then tput setaf 3 && echo "金$NAME"; tput sgr0
else echo "金$NAME"
fi
sleep 3
done
2021/02/26(金) 21:40:37.08ID:9y4w8ED+
この後続きを作ってください
2021/02/28(日) 20:31:34.11ID:pff3D6mj
切実な悩みがあります。
2021/02/28(日) 20:32:26.73ID:pff3D6mj
生理が来ないのですがどうしたら良いでしょうか?
2021/02/28(日) 22:15:05.12ID:BY9ZMr+Z
bash
変数sに文字列を代入したいのですが、文字列が長いので複数行に分けて書く方法を教えてください


s="a"
\ "b"
\ "c"

これはエラーになりますがこんな感じで複数行に分けて、sにはabcと1行分として代入されているようにしたいです
2021/02/28(日) 23:11:46.70ID:sNDsGIAp
bash なら...最後の2行がちょっと残念感あるけど
s=$(cat <<EOF
a
b
c
EOF
)
2021/02/28(日) 23:16:50.23ID:sNDsGIAp
3行じゃなくて1行っていみなら最終行以外の末尾にバックスラッシュで
s=$(cat <<EOF
a\
b\
c
EOF
)
2021/02/28(日) 23:33:09.08ID:uDfQ2boM
>>993
その場合でも単に \ の位置が間違い。1文を行変える場合は \ は行頭じゃなく行末
2021/03/01(月) 00:41:19.60ID:+i2FYD3a
ヒアドキュメント使わなくても行けるんでないかい?
2021/03/01(月) 00:43:41.99ID:+i2FYD3a
s="a\
> b\
> c"

echo $s
abc
2021/03/01(月) 00:48:24.22ID:p97sWF/c
$ l\
> s
ってしても、単に ls っていう
シンプルの極み、いつでもどこでも改行したければどうぞって感じ
2021/03/01(月) 02:25:37.20ID:IoozPjgH
a="aaa"
b="bbb"
c="ccc"
s="$a$b$c"
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 96日 4時間 48分 17秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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