プログラム技術板のシェルスクリプト総合スレ消えた?
あそこ一番活発で伸びてたスレだったと思うんだけれど
建てて良いかな?
シェルスクリプト質問スレ
208login:Penguin
2025/07/06(日) 10:20:20.05ID:mxVBG5kA209login:Penguin
2025/07/07(月) 10:36:25.85ID:a7b43M24 falseより[ ]の方が使いでがあるように最近思えてきた
タイプ数も少ないし、見た目でブラケットの中に何もないことから、空(falsy)意味論を理解するのも容易
タイプ数も少ないし、見た目でブラケットの中に何もないことから、空(falsy)意味論を理解するのも容易
210login:Penguin
2025/07/07(月) 10:40:46.91ID:a7b43M24 まあさすがに変数に入れる時はさすがにtrueと対になって対称性のあるfalseを使うけど
avail-p=false
if
avail-p; then
cmd do-smething-not-available
fi
avail-p=true
if avail-p; then
cmd do-smething-available
fi
おれは大体こんな感じでフラグ管理してる
avail-p=false
if
avail-p; then
cmd do-smething-not-available
fi
avail-p=true
if avail-p; then
cmd do-smething-available
fi
おれは大体こんな感じでフラグ管理してる
211login:Penguin
2025/07/07(月) 19:16:50.58ID:lSyk0nlH >>208
プログラム技術板にもあったけど活気があったのはUNIX板の奴だった気が
UNIX系の板自体がもはやかつての活気はないし、今後はAIに質問するのが主流になるだろうから
たてても過疎るだけじゃないかな
プログラム技術板にもあったけど活気があったのはUNIX板の奴だった気が
UNIX系の板自体がもはやかつての活気はないし、今後はAIに質問するのが主流になるだろうから
たてても過疎るだけじゃないかな
212login:Penguin
2025/07/07(月) 19:28:15.68ID:lSyk0nlH >>209
[ ] なんて使ったことなくて、この書き込みで初めて知ったわ
知らずに他人のソース読んでる際にこの表現がでてきたら
「なにか式を書こうとしてそのまま忘れたんだろうなぁ(、何が入るか全くわからん...)」
になるので他人には優しくないかも
[ ] なんて使ったことなくて、この書き込みで初めて知ったわ
知らずに他人のソース読んでる際にこの表現がでてきたら
「なにか式を書こうとしてそのまま忘れたんだろうなぁ(、何が入るか全くわからん...)」
になるので他人には優しくないかも
213login:Penguin
2025/08/27(水) 21:47:15.09ID:36SOHlNb いや、if false;then∼fiなんて、複数行のコメントアウトに使うものw
emacslispの(if nil (progn∼)と同じ
emacslispの(if nil (progn∼)と同じ
214login:Penguin
2025/09/10(水) 14:33:05.43ID:J9+LxTbs2025/09/10(水) 15:00:13.07ID:NIhEJxA7
[ ] だと "]" のパースがはいるのに対してfalseは引数の処理が要らないからfalseのほうがいいんじゃないか(パラノイア
2025/09/10(水) 19:43:28.20ID:tqss3UDy
確かにそうなのか…
でもそれ言っちゃうならif分岐しないで
普通にコメント行でいい気もビレゾン
でもそれ言っちゃうならif分岐しないで
普通にコメント行でいい気もビレゾン
217login:Penguin
2025/10/02(木) 23:22:18.76ID:yBrdr//C >>215
その実行速度差に意味があるなら、どういう使い方をしているのは説明しろよ!
その実行速度差に意味があるなら、どういう使い方をしているのは説明しろよ!
218login:Penguin
2025/10/09(木) 17:30:59.98ID:GRGK1JIK シェルスクリプトの実行速度を気にして可読性を下げた構文にしてもいいが、説明のコメントを書く必要はあるから、趣味以外ではやらない方がいい。
2025/10/10(金) 11:34:27.53ID:BTJmyFDx
linuxじたいの超絶初心者です
apacheのルートディレクトリの変更で手こずってて
何回もapache restartや
condigtesとかやったり
同じようなフォルダに行ったり
config関連のファイルを開いて書き換えたりしてます
何回も同じ文字列を打つのが面倒なのですが
そういうのを解決するのは、シェルスクリプトなんでしょうか?
そんなくらい手で打つほうが楽って上級者ばかりなのでしょうが
自分は、そのつど検索して打ち直したり、ターミナルの履歴たどってやったり
input-remapperというソフトがあったので
テンキーの1を押したら、再起動のコマンド文が入力されるようにしようかと思ったけど
apacheの文字出すだけでも
一文字ごとに+を入れないとダメみたいで、なかなか手間がかかりそうなのでとりあえずやめときました
なにか良いアイデアはあるでしょうか?
apacheのルートディレクトリの変更で手こずってて
何回もapache restartや
condigtesとかやったり
同じようなフォルダに行ったり
config関連のファイルを開いて書き換えたりしてます
何回も同じ文字列を打つのが面倒なのですが
そういうのを解決するのは、シェルスクリプトなんでしょうか?
そんなくらい手で打つほうが楽って上級者ばかりなのでしょうが
自分は、そのつど検索して打ち直したり、ターミナルの履歴たどってやったり
input-remapperというソフトがあったので
テンキーの1を押したら、再起動のコマンド文が入力されるようにしようかと思ったけど
apacheの文字出すだけでも
一文字ごとに+を入れないとダメみたいで、なかなか手間がかかりそうなのでとりあえずやめときました
なにか良いアイデアはあるでしょうか?
2025/10/10(金) 11:35:40.88ID:eylOxkng
221login:Penguin
2025/10/10(金) 12:53:12.54ID:CR56Lou9 エイリアス使え
222login:Penguin
2025/10/10(金) 13:53:53.00ID:nw5JVwKx tab補完
history
があるよ
history
があるよ
2025/10/10(金) 15:34:10.73ID:j6HXVbm2
エイリアス、関数、シェルスクリプト、zsh-autosuggestions
2025/10/11(土) 09:32:27.19ID:C5a7utix
検索してみます
ありがとう
ありがとう
2025/11/29(土) 13:15:00.97ID:RooyRT2w
そもそもシェルスクリプトなんて、ターミナルのコマンドライン上で書いて、再利用できそうなら、適当なテキストファイルに貼っとくもんだw
226login:Penguin
2026/01/28(水) 12:46:13.10ID:12deMOZP いい歳して今更オライリー頼んじゃった><
227login:Penguin
2026/01/29(木) 05:25:59.51ID:osGa1Y0N 今は何でもLLMに質問できるからな……
2026/07/21(火) 20:09:32.07ID:jNQYpuZQ
今日、初めて、zshの**(再帰検索)を知った。
めっちゃ便利やん。
find使わんでもfindを使ったような一括処理ができる
find . -type f -name "*.webp" -exec bash -c 'for f; do magick mogrify -format jpg "$f" && rm "$f"; done' _ {} +
と今まで書いていたのが
for f in **/*.webp; do magick mogrify -format jpg "$f" && rm "$f"; done
で済む
めっちゃ便利やん。
find使わんでもfindを使ったような一括処理ができる
find . -type f -name "*.webp" -exec bash -c 'for f; do magick mogrify -format jpg "$f" && rm "$f"; done' _ {} +
と今まで書いていたのが
for f in **/*.webp; do magick mogrify -format jpg "$f" && rm "$f"; done
で済む
2026/07/22(水) 05:19:06.57ID:XaMozcjW
便利だね
ちなみにAIによると、bashでもver4.0以降なら
shopt -s globstar nullglob # ←これ必要
for f in **/*.webp; do magick mogrify -format jpg "$f" && rm -- "$f"; done
が出来るんじゃないかな
ちなみにAIによると、bashでもver4.0以降なら
shopt -s globstar nullglob # ←これ必要
for f in **/*.webp; do magick mogrify -format jpg "$f" && rm -- "$f"; done
が出来るんじゃないかな
230login:Penguin
2026/07/22(水) 17:45:20.24ID:2vbXf8Gh bash でも shopt -s globstar 実行したら ** が使えるらしい
ドット開始のファイル/フォルダ名も処理対象にしたいなら shopt -s dotglob も追加
ドット開始のファイル/フォルダ名も処理対象にしたいなら shopt -s dotglob も追加
231login:Penguin
2026/07/23(木) 05:36:43.65ID:Nwxr/JU4 ほー、
今までディレクトリ以下のファイル内にgrepするとき
grep keyword *.py
grep keyword */*.py
grep keyword */*/*.py
ってやってたけど
grep keyword **/*.py
で出来るんだ
今までディレクトリ以下のファイル内にgrepするとき
grep keyword *.py
grep keyword */*.py
grep keyword */*/*.py
ってやってたけど
grep keyword **/*.py
で出来るんだ
2026/07/23(木) 06:52:10.68ID:S8xk3zuY
一つ一つmogrifyするんじゃなくて
見つけた.webを以下のように一気に並列処理するとどうだろうか
(magick mogrify -format jpg "01.web" && rm -- "01.web") &
(magick mogrify -format jpg "02.web" && rm -- "02.web") &
…
(magick mogrify -format jpg "98.web" && rm -- "98.web") &
(magick mogrify -format jpg "99.web" && rm -- "99.web") &
wait
.webpが多いとハングアップ状態になると思うので
数個単位で分割とかCPU負荷に応じて並列実行数を可変にするとか
見つけた.webを以下のように一気に並列処理するとどうだろうか
(magick mogrify -format jpg "01.web" && rm -- "01.web") &
(magick mogrify -format jpg "02.web" && rm -- "02.web") &
…
(magick mogrify -format jpg "98.web" && rm -- "98.web") &
(magick mogrify -format jpg "99.web" && rm -- "99.web") &
wait
.webpが多いとハングアップ状態になると思うので
数個単位で分割とかCPU負荷に応じて並列実行数を可変にするとか
2026/07/23(木) 06:53:17.80ID:S8xk3zuY
> (magick mogrify -format jpg "01.web" && rm -- "01.web") &
↓
(magick mogrify -format jpg "01.webp" && rm -- "01.webp") &
拡張子間違ったw
↓
(magick mogrify -format jpg "01.webp" && rm -- "01.webp") &
拡張子間違ったw
234login:Penguin
2026/07/23(木) 11:30:46.05ID:H7rg7K1S 繰り返しは for 文か xargs 使おうぜ。
xargs で4並列実行の例:
printf "%s\n" {01..99}.webp | xargs -d $'\n' -n 1 -P 4 bash -c 'magick mogrify -format jpg "$1" && rm -- "$1"' --
# 通常は printf じゃなくて find . -name '*.webp' に差し替えで
xargs で4並列実行の例:
printf "%s\n" {01..99}.webp | xargs -d $'\n' -n 1 -P 4 bash -c 'magick mogrify -format jpg "$1" && rm -- "$1"' --
# 通常は printf じゃなくて find . -name '*.webp' に差し替えで
235login:Penguin
2026/07/23(木) 11:32:13.65ID:vtHrtAQx >>231
grep なら伝統的に -r オプションがあるだろ。
と筆が走ったはいいが、自分でほぼ使ったことがないので調べると、4行目のようにするらしい。
1 $ mkdir -p a/b/c/d
2 $ echo 'keyword' | tee a/b/c/d/keyword.py > a/b/c/d/keyword.txt
3 $ cd a
4 $ grep -r --include='*.py' 'keyword'
5 b/c/d/keyword.py:keyword
6 $
grep なら伝統的に -r オプションがあるだろ。
と筆が走ったはいいが、自分でほぼ使ったことがないので調べると、4行目のようにするらしい。
1 $ mkdir -p a/b/c/d
2 $ echo 'keyword' | tee a/b/c/d/keyword.py > a/b/c/d/keyword.txt
3 $ cd a
4 $ grep -r --include='*.py' 'keyword'
5 b/c/d/keyword.py:keyword
6 $
2026/07/23(木) 13:15:08.74ID:S8xk3zuY
237login:Penguin
2026/07/30(木) 19:19:43.23ID:3tgLljX9 シェルスクリプトは可読性も大事
238login:Penguin
2026/08/10(月) 21:35:37.59ID:un2GkJsF いやーやっぱshellって凄いな。感謝しかないわ。
何なのこの効率のよさ。何処までも俺のガラクタ脳みその能力を最大限引き出してくれる感じ。覚えたbad knowhowを無駄なんかないぜって活かしてくれる駄目な俺の守護神。
何日もこなさないといけない事柄を考え抜いて、これ書くのまた何日かかるんだろ、これは簡単じゃないし、AIに聞いても助けにならない難易度のやつ、苦労するなと思ってたらshellで動きを確かめたら、あれ?これひょっとしてと思ったら、そのまま一時間ぐらいで書ききれてしまった。
浮いた時間は...精進する為に使えって事なんだね。攻めるぜ!
何なのこの効率のよさ。何処までも俺のガラクタ脳みその能力を最大限引き出してくれる感じ。覚えたbad knowhowを無駄なんかないぜって活かしてくれる駄目な俺の守護神。
何日もこなさないといけない事柄を考え抜いて、これ書くのまた何日かかるんだろ、これは簡単じゃないし、AIに聞いても助けにならない難易度のやつ、苦労するなと思ってたらshellで動きを確かめたら、あれ?これひょっとしてと思ったら、そのまま一時間ぐらいで書ききれてしまった。
浮いた時間は...精進する為に使えって事なんだね。攻めるぜ!
239login:Penguin
2026/08/10(月) 21:39:33.29ID:ad6JJENu240login:Penguin
2026/08/10(月) 21:40:24.18ID:ad6JJENu >>238
書き込む前にAIで校正してもらったほうがいい。
書き込む前にAIで校正してもらったほうがいい。
241login:Penguin
2026/08/10(月) 22:58:42.30ID:WggsIsjK shellcheckとshfmtすごいな
2026/08/11(火) 22:35:10.72ID:q9yeERdD
シェルスクリプトをshellと略すのはやめた方が良いようです
VS Code + Bash Debug
でbashシェルスクリプトをIDEでステップ実行・デバッグできるらしい
ということを知ったので時間ある時実験してみたい
VS Code + Bash Debug
でbashシェルスクリプトをIDEでステップ実行・デバッグできるらしい
ということを知ったので時間ある時実験してみたい
243login:Penguin
2026/08/13(木) 13:34:10.43ID:UohDn0mz 俺はどうにもvscodeで動かないので端末からbashdbでやってる
このbashdbもmainブランチだと最新bashに対応してないので別ブランチを持ってこないと駄目だとか色々大変でした
このbashdbもmainブランチだと最新bashに対応してないので別ブランチを持ってこないと駄目だとか色々大変でした
244login:Penguin
2026/08/13(木) 13:35:45.11ID:O9dtbIvv >>242
AIに任せたら全部正しくしてくれるから、デバックなんて作業しなくなった。
AIに任せたら全部正しくしてくれるから、デバックなんて作業しなくなった。
245login:Penguin
2026/08/13(木) 14:11:42.69ID:UohDn0mz デバッグ作業が楽しいのにねえ
246login:Penguin
2026/08/13(木) 14:13:29.73ID:O9dtbIvv >>245
AIに一度任せてみたら?いかに無駄な作業かわかるから。
AIに一度任せてみたら?いかに無駄な作業かわかるから。
2026/08/13(木) 14:22:58.62ID:bZYVXLxM
その作業をすることで得られる知見も有るから一概に無駄と片付けるのもどうかと
248login:Penguin
2026/08/13(木) 14:24:08.34ID:O9dtbIvv >>247
そういう時代もあったけど、その知見も必要なくなっているのが今。
そういう時代もあったけど、その知見も必要なくなっているのが今。
249login:Penguin
2026/08/13(木) 17:57:16.89ID:UohDn0mz ちゃんとAIも併用してるから安心して
そう鼻息荒く説かなくて良いよw
そう鼻息荒く説かなくて良いよw
250login:Penguin
2026/08/13(木) 18:41:43.71ID:O9dtbIvv >>249
時代遅れ。
時代遅れ。
2026/08/13(木) 22:45:57.46ID:JohXWfgJ
AIが書いたコードを読まずに動かすのは怖いな
bashスクリプトをよく書いてもらってるけど
・空白混じりのファイル名を扱うところでバグる
・ファイルが存在しないのに実行するとバグる
・まるで勘違いのシステム操作
などといった超凡ミス・クリティカルミスがたびたびある
バグってシステム壊れたりお宝ファイルが消滅するリスクがある
人間が作ったコードはテストされていてそんなミスは少ないと思う
AIが書いたコードはレビューもテスターも自分が第一号
bashスクリプトをよく書いてもらってるけど
・空白混じりのファイル名を扱うところでバグる
・ファイルが存在しないのに実行するとバグる
・まるで勘違いのシステム操作
などといった超凡ミス・クリティカルミスがたびたびある
バグってシステム壊れたりお宝ファイルが消滅するリスクがある
人間が作ったコードはテストされていてそんなミスは少ないと思う
AIが書いたコードはレビューもテスターも自分が第一号
252login:Penguin
2026/08/13(木) 23:59:59.96ID:SfHC8Sm4 変数をダブルクォーテーションで括らない(=空白混じりの文字列を
複数引数としてパーズしてしまう)癖があるのは確かに気になる
コンパイル言語で括らないほうを好むように学習してしまってるんだろうな
ただ逆に自分より賢い/よりノウハウが詰め込まれた汎用性の高いコードを
返してくることもあるので侮れない
複数引数としてパーズしてしまう)癖があるのは確かに気になる
コンパイル言語で括らないほうを好むように学習してしまってるんだろうな
ただ逆に自分より賢い/よりノウハウが詰め込まれた汎用性の高いコードを
返してくることもあるので侮れない
2026/08/14(金) 00:07:12.97ID:WBiwKfs4
定番なのに今まで自分は知らなかった手法を書いてくれた時は感動する
何やってるか分からないところは分かるまでAIに質問攻めしたり調べたりして
全て理解してからじゃないと実行しない
何やってるか分からないところは分かるまでAIに質問攻めしたり調べたりして
全て理解してからじゃないと実行しない
2026/08/14(金) 06:42:03.11ID:VWod7kn+
ChatGPTな登場してスクリプトの理解度が上がった
わからない行は丁寧に教えてくれるし、
知らなかった文法や、アルゴリズムも新しい知識として得られる
Linuxと生成AIって相性が本当によい
わからない行は丁寧に教えてくれるし、
知らなかった文法や、アルゴリズムも新しい知識として得られる
Linuxと生成AIって相性が本当によい
255login:Penguin
2026/08/14(金) 07:59:50.72ID:KOm0o+8U もっともらしい嘘をつくのもAIなんだが
256login:Penguin
2026/08/14(金) 11:18:45.81ID:bVU+G+he Google でコマンド調べてるとたまに存在しないコマンドラインオプション提示してくるよね...
2026/08/14(金) 16:17:13.99ID:y2KVGNtr
レスを投稿する
ニュース
- 【速報】福原遥(まいんちゃん)とサッカー日本代表の久保建英がまさかの電撃結婚★6 [爆笑ゴリラ★]
- 大阪・清風高校で「カンニング指導」後に生徒が自殺「無関係とは決して思っていない」両親が1億円余の損害賠償求める★2 [七波羅探題★]
- 【サッカー】なでしこジャパン、難敵・北朝鮮を下し大会3連覇の金メダル!PK戦の死闘を制し史上最多4度目Vの快挙 [ゴアマガラ★]
- 【東京】10階以上の高さの工事現場から落ちてきた約1メートルの鉄骨が首に刺さる 2階にいた50代男性作業員が死亡 [煮卵★]
- 【電撃結婚】「チャラいんじゃないかと1、2年スルーしていた」と知人証言、“ド真面目”な福原遥の心を動かした久保建英の“猛アタック” [muffin★]
- 【簗農相記者会見】「道路予算は大幅カット」発言おおむね認める 「表現ぶりが誤解招いた」 [蚤の市★]
- 【実況】博衣こよりのえちえちこんこよ高校2026-2年目春甲子園-🧪★5
- 【実況】博衣こよりのえちえちこんこよ高校2026-2年目春甲子園-🧪★6
- 【正論】岩屋前外相会見。「日中関係悪化の原因を作ったのは高市。中国はめっちゃ怒ってる」 [668024367]
- アセ顔ダブルピース✌😅✌の🏡
- 高校生「カンニングバレて怒られた!ほな死ぬわ!!」飛び降りて死亡 [963243619]
- 【悲報】まいんちゃん結婚