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

■ このスレッドは過去ログ倉庫に格納されています
2020/11/24(火) 21:37:20.06ID:mbTiTj6s
シェルスクリプトに関する総合スレッドです。

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

前スレ: シェルスクリプト総合 その34
https://mevius.5ch.net/test/read.cgi/tech/1597990675/
2020/12/24(木) 18:00:42.97ID:QjnK2nrq
Mercurialでは?
2020/12/24(木) 18:33:51.50ID:MGQS4hov
POSIX中心主義によるとgitはPOSIX準拠ではないので使ってはだめだが
例外条件が有るので、Mercurialのgitプラグインをつかって
gitでもhgでも交換可能で動くようにすればOK

gitを使うスクリプトは両方のコマンドで共通で使える機能だけを使い
hgでも動くようにしするのがPOSIX中心主義

最大公約数的な機能しか実現できずMercurialなんて使わないのに
両対応のためにコードが複雑化し開発工数が
上がるのがPOSIX中心主義である

現実的じゃない理由
2020/12/24(木) 19:39:56.60ID:QjnK2nrq
なんというか,「反POSIX中心主義」もそれもそれで
頭の固い連中だなと思うなど。
2020/12/24(木) 19:54:44.78ID:MGQS4hov
>>550
それは「POSIX中心主義」という技術の話ですか?
それとも単に人の話をしてるだけですか?
私は技術の話をしています。
2020/12/24(木) 22:03:18.07ID:Fir/sAH4
聞かれてもいないのに自分の主張ばかり書き込むのが流行ってますね
2020/12/24(木) 22:05:17.56ID:MGQS4hov
なにか問題なの?
総合スレの内容として適切だと思うけど?
2020/12/24(木) 22:12:45.41ID:QjnK2nrq
(そういうところなんだよな……)
2020/12/24(木) 22:44:46.84ID:5YZuSfe/
ま、こないだはポジバカがうるさかったからな。
カウンターみたいなもんやろ。
しゃあない。
2020/12/24(木) 23:13:14.78ID:MGQS4hov
>>555
だから「POSIX準拠」と「POSIX中心主義」は全くの別物なんだって
2020/12/25(金) 08:54:47.64ID:WWGB0Om3
クソの役にも立たない言い訳はいいからシェルスクリプトの話題出せや
あくしろよクズ
2020/12/25(金) 09:37:45.95ID:lUAVm7Fr
{x}<"$x" _=${x=<(echo moo)} <&0$(cat <&"$x" >&2)
2020/12/25(金) 12:45:23.06ID:VmiYGpd6
>>558
what is it?
2020/12/25(金) 12:58:49.29ID:HEI7zSvg
>>557
「POSIX中心主義」はシェルスクリプトの話題なんだが?
2020/12/25(金) 19:01:39.76ID:VmiYGpd6
>>542
2020/12/25(金) 19:24:27.58ID:Rv3U506l
>>561
それはシェルスクリプトの話題かね?
2020/12/25(金) 19:39:35.11ID:VmiYGpd6
>>562
「POSIX中心主義の話題」が「シェルスクリプトの話題」
なのであれば当然>>542も「シェルスクリプトの話題」ですね。
2020/12/25(金) 19:49:51.04ID:Rv3U506l
「反対勢力が気持ち悪い」は勢力の話なのでシェルスクリプトの話ではありません。
「POSIX中心主義」と反対の技術の話はシェルスクリプトの話ですがね。
2020/12/25(金) 20:51:49.39ID:YbAqFMwb
しつけえ
POSIX中心主義とやらとの対話にもなってないのになんでこんなにしつこいのか
2020/12/25(金) 21:15:41.10ID:Rv3U506l
だからPOSIX中心主義の問題点の話をしましょうよw
2020/12/25(金) 21:35:42.46ID:YbAqFMwb
誰も興味ないのは明らかだろう
ポジキチさえも食いついてないみたいだしな
お前というのには興味はちょっとあるみたいだが、お前はそれを拒否してるしw
2020/12/25(金) 21:40:34.71ID:FtEIxKGr
基地外かよwww
2020/12/25(金) 22:25:13.08ID:wHWhOTCT
sedでスラッシュを含む文字列を置換する際に別のセパレーターを使うと思うけど、どの文字を使ったほうがいいとかおすすめってある?
2020/12/25(金) 22:31:49.34ID:iWGmuKlq
重ならない文字
2020/12/25(金) 22:56:34.63ID:VmiYGpd6
逆斜線を前置すれば別にどんな文字を使ってもいいんだけどね、実は。
まあ印象としては/と|が多く使われてている印象。
Gentoo Linuxを使ってるんだけど,パッケージのコンパイルの時に
流れていくスクリプトを見ていると
sed -e 's/.../.../'かsed -e 's|...|...|'が多い「気がする」。
2020/12/25(金) 23:21:27.19ID:DE1iEGh9
「|」を使ったものの、正規表現で選択を追加したくなって、区切り文字を変えることもある。
「!」に変えたら(「|」に似てるからw)、先読み否定アサーションを追加したくなって、さらに変えるはめに。
「%」に変えた(「/」に似てるからw)ものの、そのままcrontab(たしか)に書いた結果、エラーになることもある。

結局、「/」のままがもっともマシな気がしてきている今日このごろ。。。
2020/12/26(土) 00:42:46.54ID:KCd7SMlY
@マークとかも見た覚えがある。
繰り返すけど結局逆斜線でエスケープすればいいだけなので何使っても……って感じ。
2020/12/27(日) 01:32:14.14ID:MZd1eqSW
あまり使われない記号としては#とか@かな
2020/12/27(日) 01:37:53.93ID:RkRq3Z+d
<もあまり使わないぞ!
2020/12/27(日) 02:31:09.59ID:NaLm9w9P
: とかどう?
2020/12/27(日) 05:20:13.65ID:3wE25Ze9
斜めつまようじ症候群というやつだな。

うわ、あの本がもう手元になかったw 最近ほとんど使ってないしな。

英語のWikipediaを見ると{}とか##とか!!とかの例が書いてある。
2020/12/27(日) 05:58:05.59ID:RkRq3Z+d
つまようじ大好き症候群だろ
誰だよ変な訳にしたの、とほほか
2020/12/27(日) 07:02:29.22ID:3wE25Ze9
ああそうだっけか。まあ leaning toothpick syndrome だから間違いではないが
やはり公式日本語本が聖典といえるw

どこ行っちゃんただろう、俺のラクダ本。
最近はスクリプトを書く場合はだいたいpython、たまにshって感じだからなあ...
2020/12/27(日) 12:45:17.76ID:gKaJCZHp
公式日本語本ってナニ?
2020/12/27(日) 13:07:21.46ID:CEWAcbKQ
らくだじゃないの?
2020/12/27(日) 13:08:33.03ID:RkRq3Z+d
例のタイトルを覚えてもらえないシリーズ
2020/12/27(日) 19:57:57.32ID:NaLm9w9P
つまようじ大好き症候群っていうのか、おもしろいな
2020/12/27(日) 20:41:56.75ID:OKKHmb6b
普通に斜線シンドロームとか斜線病で良くね
syndromeは症候群て訳されるけど症候群は違う感じする
2020/12/27(日) 21:04:38.86ID:RkRq3Z+d
ダブルミーニングな気がするが傾きと偏愛の2つの意味がある
https://eow.alc.co.jp/search?q=leaning
> 〔垂直な位置からの〕傾き、傾斜◆【動】lean
> 〔〜を好む〕傾向

https://ejje.weblio.jp/content/leaning
> 傾向,性癖; 好み,偏愛 〔to,toward〕.

だが公式につまようじ大好き症候群って書いてるんだから
こっちでいいやろ。斜めつまようじとか意味わからんし。
2020/12/27(日) 21:32:19.92ID:CEWAcbKQ
「leaning」を訳出してるだけなのに、意味わからんとか意味わからん。
2020/12/27(日) 21:58:06.67ID:RkRq3Z+d
>>586
「star」には「星」という意味と「人気者」という意味がある

「star]を訳出してるだけ、スターウオーズは「人気者戦争」だ
と言われても、訳がおかしい、意味わからんとしか言いようがないのと一緒
2020/12/27(日) 22:45:00.74ID:gKaJCZHp
雑な相対化が好きね
2020/12/27(日) 22:58:34.68ID:CEWAcbKQ
>>587
じゃあ「リーニングツースピックシンドローム」って言えよ。w
2020/12/27(日) 23:25:45.11ID:vxCvKtMx
>>584
m/ftp:\/\/[^\/]*\/pub\//
をぱっとみ \ を含めて leaning toothpick が多すぎ=単に見た目な感じだけでじゃね
そんな厳密な病気的な意味でなく、なんらかの変わったように見える(もしくは少々異常に見える)状態行動を言うときもあるだろう
「病」と言う場合もあるがどちらかというと揶揄したり真っ向から否定する場合じゃね
2020/12/27(日) 23:40:37.60ID:vxCvKtMx
難読化を促進してるのは主に \ のせいだし、
/ と \ しかとりあえずその言葉の対象(原因?)でしかないので、斜めつまようじシンドローム の方が合ってるような気がするな。日本語の語感としては変だと思うけどw
2020/12/28(月) 00:05:57.90ID:va1o1QcS
>>584
>斜線シンドローム
ってレス内にあったのか。俺はそれに+1
2020/12/28(月) 00:14:20.28ID:X0zJWoaM
(これはネタ)
傾楊子病とかすると古来からの病気っぽくなるw
2020/12/28(月) 00:45:49.42ID:pErUmn8e
尖圭コンジローマ
2020/12/28(月) 01:13:38.32ID:AD+30T3D
>>592
じゃあ、オレは-1。
原文の小ネタのじゃれた気持ちが出ていない。
2020/12/28(月) 01:26:30.61ID:5RAzyW5q
その点インテル入ってるってすげーよな
intel insideと逆サイドで韻踏み
2020/12/28(月) 08:17:31.57ID:Ek6iOK1a
>>590
そういうときのために
m(ftp%3A//[^/]*/pub/)
って書けるように
処理系のほうが工夫してるんだったら
書かない方が悪い
2020/12/28(月) 08:19:26.17ID:Ek6iOK1a
>>595
楊子傾倒症候群
ってのはどうか
2020/12/28(月) 11:39:49.80ID:vFQ3C+Zv
話の流れ読めないやつだな
2020/12/28(月) 17:59:02.72ID:X0zJWoaM
>>598
+1
2020/12/31(木) 17:15:57.75ID:6l44qxZH
#!/bin/sh

aiuo() {
curl --silent "https://example"; | jq -r ".aaa.bbb" 2> /dev/null
}

hoge=""
hoge=${aiuo}
echo "hoge = ${hoge}"

ターミナルでaiuoの中を一行でやるとjqの結果が表示されるけど、
shファイルを作ってやるとjqの結果が表示されずにhoge =しか表示されないのはどこが間違えてますか?
2020/12/31(木) 17:51:39.44ID:tdaLm2s5
括弧が間違ってるんじゃない?
2020/12/31(木) 18:01:15.85ID:FYWkeHq1
間違ってるな
604デフォルトの名無しさん
垢版 |
2020/12/31(木) 19:11:51.62ID:+40/WJTs
awkがシェルスクリプトじゃないのは事実なんだよな

POSIX原理主義はシェルスクリプト以外も使っていいと言いつつ
結局「シェルスクリプトでやる」と主張してるだろっていうツッコミはあるが

シェルスクリプト以外も使っていいからこそ
awkという「シェルスクリプトではない言語」を使っているんだろ?w

だから最初に言った言葉である「awkはシェルスクリプトではない」という事実は変わってない
awkメインのコー ドは「シェルスクリプト」ではなく「awkスクリプト」と呼ぶべきで
POSIX原理主義は「(原則として)シェルスクリプトで実装する」と主張するんじゃなくて
「awkを使って実装する」と主張するべきだってことなんだよ

ちなみにな、POSIX原理主義はシェルスクリプト以外も使っていいのであれば
RubyやJavaなども使っていいということになる
こちらも「シェルスクリプト以外も使っていいが原則としてシェルスクリプトでやる」という主張と矛盾している
605デフォルトの名無しさん
垢版 |
2020/12/31(木) 19:14:03.59ID:+40/WJTs
少し訂正

× awkメインのコー ドは「シェルスクリプト」ではなく「awkスクリプト」と呼ぶべきで
○ 埋め込みawkメインのコー ドは「シェルスクリプト」ではなく「awkスクリプト」と呼ぶべきで

Pythonのコー ドをワンライナーでシェルスクリプトに埋め込むのと同じ
ワンライナー程度ならまだシェルスクリプトがメインと言えるだろうが
何十行も全体の半分以上も埋め込むなやw
606デフォルトの名無しさん
垢版 |
2020/12/31(木) 20:11:12.41ID:jey11SVr
>>601
hoge=$(aiuo)かhoge=`aiuo`にすれば?
2020/12/31(木) 20:20:46.04ID:6l44qxZH
>>602, 603, 606
どうもありがとうございました
()、{}、`の使い分け画像よく分ってないです
2020/12/31(木) 20:57:23.81ID:2bA0HVQw
( hoge; hage ) コマンドのグループ化(サブシェル内でコマンド実行)
{ hoge; hage; } コマンドのグループ化(サブシェルなしでコマンド実行)

ret=$( hoge; hage ) 標準出力の結果を変数に入れる(サブシェル内でコマンド実行)
ret=`hoge; hage` 上記と同等。POSIXに準拠してない古いシェル用の書き方。ネストできないので30年前から非推奨。
ret=${ hoge; hage; } こんなものはない
2020/12/31(木) 21:11:15.00ID:6l44qxZH
>>608
どうもありがとうございました
2021/01/01(金) 00:39:28.26ID:wSR0l3d3
>>608
`<command>`ってネストできないんだっけ。
ネストしにくいだけで可能ではあるんじゃなかったか。
2021/01/01(金) 00:47:58.70ID:hjo1vK/7
もうどうでもいいよw
``は30年前から非推奨
四則演算にexprを使うのも30年前から非推奨
$(...) と $((...)) を使うのが30年前から続くPOSIX準拠のトレンド
これを普及させることが今年の目標なw
612デフォルトの名無しさん
垢版 |
2021/01/01(金) 01:28:03.16ID:7BFOsP2G
>>610
シングルクウォートでできないっけ
2021/01/01(金) 01:52:19.59ID:2/H3yQW9
>>612
バックスラッシュかな。バックスラッシュでできるよう
`level1\`level2\\\`level3\\\\\\\`level4\\\\\\\`\\\`\\\`level3\\\`\``
のような
なんか笑うw
614デフォルトの名無しさん
垢版 |
2021/01/01(金) 01:57:51.57ID:7BFOsP2G
>>613
これは分かりにくいな…
2021/01/01(金) 02:15:20.98ID:2/H3yQW9
\ はどういう増加率やねんと思った(level4は一つずつ増やしての手動)ら、2^(level-1)-1
だった
まあ、そんなにネストするやつは居ないだろうで実質level3ぐらいが実用的な範囲か
(もしくはそんなにネストすんなという暗黙的戒めか?w)
でも、遊びでlevel6とかするとやっぱり笑うw

>>614
うん。でも、見方変えるとなんかでかいからペアがわかりやすく...もねえかw
2021/01/01(金) 02:55:03.01ID:hjo1vK/7
>>613
つまようじ大好き症候群やめろ
2021/01/01(金) 03:00:52.40ID:hjo1vK/7
さすがにPOSIXを厳守してるので``つかいます。expr使います。
とか言ってるエセPOSIX信者は消えたかね?

あと`#`とかいうハックするやつは○ね
サブシェル起動で遅くなるだろが
2021/01/01(金) 03:08:12.13ID:2/H3yQW9
いつものやつとしか思えないw
自分が間違ったのを異常に誤魔化すような(いつものw)異常なレスだなと見えるぞ
2021/01/02(土) 20:28:18.95ID:YRmKf+cs
read -u の -u ってなんの略?
2021/01/02(土) 21:19:28.61ID:5m3zQZhj
unko
2021/01/02(土) 21:32:04.01ID:1KyEUTu5
ussodaroomae
2021/01/03(日) 22:01:05.48ID:sJkgD0sU
>>619
brian に聞いたら used だって言ってた
2021/01/04(月) 05:07:20.98ID:2pj20ySx
unitみたいだね
2021/01/04(月) 05:36:45.90ID:vYYyBooK
universe
2021/01/04(月) 12:53:18.02ID:gQq4oDMw
aaa="testtt" #フォルダ名
date_dir=$(mkdir -p $aaa/`date '+%Y%m%d'`) #testttフォルダの中に20210104の作りたい

wget https://example.com/example.txt -P $date_dir

これをやるとフォルダは作られるけどtxtの保存先がカレントディレクトリになるのはどうしてですか?
2021/01/04(月) 13:13:55.07ID:VbZo6FxW
>>625
“$date_dir”の中身を確認してみ

原因を知ることも大事だけど
それを調べる方法を知ることのほうがもっと大事
2021/01/04(月) 15:14:38.15ID:gQq4oDMw
>>626
echo $date_dir だとなんにも表示されないです
間違えてますねきっと
628デフォルトの名無しさん
垢版 |
2021/01/04(月) 15:43:15.17ID:UbvRjqjo
mkdir -p $aaa/`date '+%Y%m%d'`の標準出力見てごらん
2021/01/04(月) 17:34:40.13ID:yec7Hk1C
mkdir が、戻り値を返すか?

An exit status of zero indicates success,
and a nonzero value indicates failure.

echo $?
だろ
2021/01/04(月) 20:03:34.81ID:qovFEaH+
これがアスペか
2021/01/05(火) 00:39:17.17ID:DDTn90b5
みたいだな。キチも少し入ってそうな
2021/01/05(火) 03:43:22.28ID:psakH13p
いや、単にバカなだけでは...
2021/01/05(火) 10:50:42.48ID:yLm33Pt/
POSIXじゃないからダメ。
2021/01/05(火) 10:55:00.15ID:aNkjNIb3
>>633
俺のふりをするな
2021/01/05(火) 12:08:48.70ID:zD1ciQHW
Ruby では、あるディレクトリ直下のディレクトリだけをソートして、
", "(カンマと空白)でつなげて、1行の文字列にしたものは、

ruby -e 'puts Dir.glob( "*" ).select{ |file| File.directory? file }.sort.join( ", " )'

出力
app, bin, config, db

これをシェルスクリプトでは、どう作るの?
これらを使うの?

ls -d */
find . -maxdepth 1 -type d
2021/01/05(火) 15:59:04.73ID:2z9IJIZ8
スレのテンプレにRubyの話を控える(というかほぼ無くす)よう追記しない?
2021/01/05(火) 16:54:38.25ID:G+6noEPp
>>636
またマウントとれない話題はやめろってか

ダサいなぁ
答えられないならスルーすればいいだけだろ
2021/01/05(火) 17:19:13.55ID:2z9IJIZ8
>>637
えぇ……スレチを指摘するのってダサいんだ。
知らんかったなあw
2021/01/05(火) 17:48:43.98ID:psakH13p
半分シェルスクリプトの質問なんだからスレチでもなくない?
ワイはだるいから答えませんが...
2021/01/05(火) 17:55:47.46ID:DKe92MJE
>>635
ruby -e 'puts Dir.glob( "*" ).select{ |file| File.directory? file }.sort.join( ", " )'

find * -maxdepth 0 -type d -printf "%f, " | sed 's/, $/\n/'

27文字差
2021/01/05(火) 18:05:14.30ID:F/xhjvIl
へー、-printf ねえ...
2021/01/05(火) 18:07:31.79ID:aNkjNIb3
シェルスクリプトが苦手な人が
難しくなったら他言語で書き直したほうがいいってよく言ってるけど
同じ処理を他言語で書き直すとたいていシェルスクリプトより長くなるんだよなw
2021/01/05(火) 18:45:22.40ID:PtcuBhf4
場合によるだろう
いつもの隙あればマウント取りたがりかw1行目から明らかに
>>633は誰かが遊んだのかと思ったら自らなのか。キチってるなw
2021/01/05(火) 18:55:32.13ID:PtcuBhf4
>>643
>>633
>>634
すまん、>>633 w

だけじゃなんななので
あの find はそれでいいの??ダメだったら長くなりそうな気がしないでもない
2021/01/05(火) 19:06:42.36ID:jvx2si/E
ルビキチもポジキチも元気いいなここは
仕事ないのか?
2021/01/05(火) 19:09:44.19ID:PtcuBhf4
ルビキチはしばらく見ないなw
ルビキチに悪影響されての ID:2z9IJIZ8 の流れがちょっとアレだったな
2021/01/05(火) 19:20:26.75ID:DKe92MJE
>>635
find * -type d -prune | paste -sd, | sed 's/,/, /g'
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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