シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
前スレ: シェルスクリプト総合 その34
https://mevius.5ch.net/test/read.cgi/tech/1597990675/
シェルスクリプト総合 その35
レス数が1000を超えています。これ以上書き込みはできません。
2020/11/24(火) 21:37:20.06ID:mbTiTj6s
947デフォルトの名無しさん
2021/02/22(月) 13:42:31.76ID:pc9xVD8t >>943
ロングオプションなんかぐにゅの後出しみたいなもんやし、互換性のほうが重要やし、しゃあない。
統一性を期待するもんでも、守る守らないを議論するもんでもない。
コマンドラインの世界は、ただ混沌を受け入れるのみ。。。
ロングオプションなんかぐにゅの後出しみたいなもんやし、互換性のほうが重要やし、しゃあない。
統一性を期待するもんでも、守る守らないを議論するもんでもない。
コマンドラインの世界は、ただ混沌を受け入れるのみ。。。
948デフォルトの名無しさん
2021/02/22(月) 14:06:32.02ID:G00ce5gO ロングオプションっていうかハイフン2個で始まるオプションに関しては統一されてる
変なオプションがあるのはハイフン1個で始まるやつ
もし今からオプションを規格化するとしたら、俺なら
-で始まるのは一文字のオプションだけ。オプションの引数はなし
--で始まるのはロングオプションで、オプションの引数はあって無くてもよいが
ある場合は --long=value みたいに必ずハイフンでつなげること
--long value形式は無しってルールにするだろうな
そうしないとオプションの解析は面倒くさすぎる
変なオプションがあるのはハイフン1個で始まるやつ
もし今からオプションを規格化するとしたら、俺なら
-で始まるのは一文字のオプションだけ。オプションの引数はなし
--で始まるのはロングオプションで、オプションの引数はあって無くてもよいが
ある場合は --long=value みたいに必ずハイフンでつなげること
--long value形式は無しってルールにするだろうな
そうしないとオプションの解析は面倒くさすぎる
949デフォルトの名無しさん
2021/02/22(月) 14:28:14.65ID:7dAnGrvt 2020年代にもなってオプション解析を自前でやらなきゃいけないという時代錯誤感よ
950デフォルトの名無しさん
2021/02/22(月) 14:49:21.32ID:G00ce5gO 自分でやりたくないならライブラリでも使えば?
951デフォルトの名無しさん
2021/02/22(月) 14:53:50.85ID:pc9xVD8t >>948
今さら「俺」ルールなんかいらんわ。w
https://linuxjm.osdn.jp/html/LDP_man-pages/man3/getopt.3.html
もっとも、これを使うも使わないも、個々の自由。。。
今さら「俺」ルールなんかいらんわ。w
https://linuxjm.osdn.jp/html/LDP_man-pages/man3/getopt.3.html
もっとも、これを使うも使わないも、個々の自由。。。
952デフォルトの名無しさん
2021/02/22(月) 19:20:10.80ID:G00ce5gO953デフォルトの名無しさん
2021/02/22(月) 21:20:04.93ID:CSMFeOjN >>946
シェバンに/bin/bash、 debian/control に Depends: bash って書くがよい
シェバンに/bin/bash、 debian/control に Depends: bash って書くがよい
954デフォルトの名無しさん
2021/02/22(月) 21:48:09.71ID:G30bzgiW 何か作業しようとするときにログインがbashかそうでないかは重要
955デフォルトの名無しさん
2021/02/22(月) 22:36:34.00ID:pc9xVD8t956デフォルトの名無しさん
2021/02/22(月) 22:47:21.38ID:DTTWlGhR957デフォルトの名無しさん
2021/02/22(月) 22:54:09.71ID:G00ce5gO >>951はC言語のインターフェースじゃんw
ロングオプションにも対応してないし
ロングオプションにも対応してないし
958デフォルトの名無しさん
2021/02/22(月) 23:05:43.02ID:DTTWlGhR よく読め。色々よく読め
959デフォルトの名無しさん
2021/02/22(月) 23:05:58.69ID:UEjjQNjA シェルで標準的に使われてるのってgetoptかgetoptsじゃないの?
どっちも微妙だけど
どっちも微妙だけど
960デフォルトの名無しさん
2021/02/22(月) 23:33:06.17ID:gzMW+qbC getoptはPOSIX準拠じゃないうえにMacで挙動が違うしな
961デフォルトの名無しさん
2021/02/24(水) 21:20:00.07ID:5t0N0rwK 現行ディレクトリ直下にあるファイルを日付順に処理したい。
dateの-dオプションと'%s'書式を使ったやりかた
(-dオプションにlsの出力の日付欄を渡して,%s書式でsortに回しやすい形式に変換する)
は思い付くのだが,できればもうちょっと汎用性のあるやりかたでやりたい。
それこそAlpine Linuxでもできるようなやりかた,せめてSUS準拠くらいで。
dateの-dオプションと'%s'書式を使ったやりかた
(-dオプションにlsの出力の日付欄を渡して,%s書式でsortに回しやすい形式に変換する)
は思い付くのだが,できればもうちょっと汎用性のあるやりかたでやりたい。
それこそAlpine Linuxでもできるようなやりかた,せめてSUS準拠くらいで。
962デフォルトの名無しさん
2021/02/24(水) 21:42:59.94ID:MoKQog7D lsでソート出力すればいいじゃん
963デフォルトの名無しさん
2021/02/24(水) 22:44:33.75ID:2EpFMX6w Alpine LinuxだのSUS準拠だの言ってるくせに...
964デフォルトの名無しさん
2021/02/25(木) 00:58:03.42ID:YHeeVxEb965デフォルトの名無しさん
2021/02/25(木) 01:17:21.10ID:/S7F+Ehi 最近はマニュアル読まないで人に聞く豆腐が増えたよな
966デフォルトの名無しさん
2021/02/25(木) 02:03:25.10ID:4mFpqJjx Alpine LinuxだのSUS準拠だの言ってるくせにこのザマとは
967デフォルトの名無しさん
2021/02/25(木) 02:26:19.35ID:4mFpqJjx Unix Version 1 からあるな
逆順は System III にはあるな
興味があって探してみたらあるもんだな
逆順は System III にはあるな
興味があって探してみたらあるもんだな
968デフォルトの名無しさん
2021/02/25(木) 02:45:06.54ID:4mFpqJjx 逆順は Unix Version 4 からだな
本当に探せばあるもんだなぁ
本当に探せばあるもんだなぁ
969デフォルトの名無しさん
2021/02/25(木) 08:48:17.15ID:d+c5dEfq posix ls でググってから質問しろよ
970デフォルトの名無しさん
2021/02/25(木) 09:20:54.75ID:ZyJLXTlk971デフォルトの名無しさん
2021/02/25(木) 12:34:26.08ID:lhusjOX+ ls lt(r)じゃ駄目なのか
972デフォルトの名無しさん
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)で処理するのはどうかな。
まあ改行を含むファイル名には対処できないが。
> -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)で処理するのはどうかな。
まあ改行を含むファイル名には対処できないが。
973デフォルトの名無しさん
2021/02/25(木) 14:29:24.68ID:o6/HxSuB lいらなくね
974デフォルトの名無しさん
2021/02/25(木) 14:31:49.73ID:o6/HxSuB わざとなのかなんなのか
975デフォルトの名無しさん
2021/02/25(木) 14:52:14.25ID:AentelGa 壮大な自作自演
976デフォルトの名無しさん
2021/02/25(木) 15:20:30.62ID:o6/HxSuB ぽいな。マジっぽいしな
977デフォルトの名無しさん
2021/02/25(木) 15:39:02.71ID:YHeeVxEb >>973
え,lなんてどこにある?
え,lなんてどこにある?
978デフォルトの名無しさん
2021/02/25(木) 15:46:39.14ID:v3k9zwrF 自作自演でなくても自意識過剰なやつw
979デフォルトの名無しさん
2021/02/25(木) 17:28:29.42ID:/S7F+Ehi Q: 現行ディレクトリ直下にあるファイルを日付順に処理したい。
A: lsでソート出力すればいいじゃん
人にものを教えてもらった時は「ありがとうございました」だろ
A: lsでソート出力すればいいじゃん
人にものを教えてもらった時は「ありがとうございました」だろ
980デフォルトの名無しさん
2021/02/25(木) 18:29:23.70ID:Le6oxEMx 利奈みんとbotっていい加減停止してほしい
過去の質の悪い情報を、何度も繰り返しツイートすんな
過去の質の悪い情報を、何度も繰り返しツイートすんな
981デフォルトの名無しさん
2021/02/26(金) 04:40:12.26ID:pzzMEm8u Q: 現行ディレクトリ直下にあるファイルを日付順に処理したい。
A: ls -ct1
A: ls -ct1
982デフォルトの名無しさん
2021/02/26(金) 04:55:54.66ID:hDnFyj4c 知らなかったくせにプライドだけはいっちょ前だな
謙虚さが無いやつは成長しない
謙虚さが無いやつは成長しない
983デフォルトの名無しさん
2021/02/26(金) 11:37:38.92ID:pzzMEm8u えぇ……。
984デフォルトの名無しさん
2021/02/26(金) 12:54:01.69ID:X0njcRoR >>970
こんな殺伐としたスレでもちゃんと立ててくれる人がいる、おつおつ
こんな殺伐としたスレでもちゃんと立ててくれる人がいる、おつおつ
985デフォルトの名無しさん
2021/02/26(金) 13:35:11.54ID:XgSzjw4v986デフォルトの名無しさん
2021/02/26(金) 18:46:13.32ID:7vDu415h987デフォルトの名無しさん
2021/02/26(金) 19:53:37.61ID:R5L7j7Jr それおもしろいとでも思って書いたの?
988デフォルトの名無しさん
2021/02/26(金) 20:44:14.99ID:25Vyny5k989デフォルトの名無しさん
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
# >>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
990デフォルトの名無しさん
2021/02/26(金) 21:40:37.08ID:9y4w8ED+ この後続きを作ってください
991デフォルトの名無しさん
2021/02/28(日) 20:31:34.11ID:pff3D6mj 切実な悩みがあります。
992デフォルトの名無しさん
2021/02/28(日) 20:32:26.73ID:pff3D6mj 生理が来ないのですがどうしたら良いでしょうか?
993デフォルトの名無しさん
2021/02/28(日) 22:15:05.12ID:BY9ZMr+Z bash
変数sに文字列を代入したいのですが、文字列が長いので複数行に分けて書く方法を教えてください
s="a"
\ "b"
\ "c"
↑
これはエラーになりますがこんな感じで複数行に分けて、sにはabcと1行分として代入されているようにしたいです
変数sに文字列を代入したいのですが、文字列が長いので複数行に分けて書く方法を教えてください
s="a"
\ "b"
\ "c"
↑
これはエラーになりますがこんな感じで複数行に分けて、sにはabcと1行分として代入されているようにしたいです
994デフォルトの名無しさん
2021/02/28(日) 23:11:46.70ID:sNDsGIAp bash なら...最後の2行がちょっと残念感あるけど
s=$(cat <<EOF
a
b
c
EOF
)
s=$(cat <<EOF
a
b
c
EOF
)
995デフォルトの名無しさん
2021/02/28(日) 23:16:50.23ID:sNDsGIAp 3行じゃなくて1行っていみなら最終行以外の末尾にバックスラッシュで
s=$(cat <<EOF
a\
b\
c
EOF
)
s=$(cat <<EOF
a\
b\
c
EOF
)
996デフォルトの名無しさん
2021/02/28(日) 23:33:09.08ID:uDfQ2boM >>993
その場合でも単に \ の位置が間違い。1文を行変える場合は \ は行頭じゃなく行末
その場合でも単に \ の位置が間違い。1文を行変える場合は \ は行頭じゃなく行末
997デフォルトの名無しさん
2021/03/01(月) 00:41:19.60ID:+i2FYD3a ヒアドキュメント使わなくても行けるんでないかい?
998デフォルトの名無しさん
2021/03/01(月) 00:43:41.99ID:+i2FYD3a s="a\
> b\
> c"
echo $s
abc
> b\
> c"
echo $s
abc
999デフォルトの名無しさん
2021/03/01(月) 00:48:24.22ID:p97sWF/c $ l\
> s
ってしても、単に ls っていう
シンプルの極み、いつでもどこでも改行したければどうぞって感じ
> s
ってしても、単に ls っていう
シンプルの極み、いつでもどこでも改行したければどうぞって感じ
1000デフォルトの名無しさん
2021/03/01(月) 02:25:37.20ID:IoozPjgH a="aaa"
b="bbb"
c="ccc"
s="$a$b$c"
b="bbb"
c="ccc"
s="$a$b$c"
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 96日 4時間 48分 17秒
新しいスレッドを立ててください。
life time: 96日 4時間 48分 17秒
レス数が1000を超えています。これ以上書き込みはできません。
