第66回シェル芸勉強会メモ
記事投稿日: 2023年10月3日(火)
最終更新日: 2024年3月30日(土)
目次
はじめに
2023年9月30日に開催された第66回シェル芸勉強会にオンラインで参加させていただきました。
そのときの記録をメモとして記事にしておこうと思います。
あと、解けそうな問題はChatGPT(GPT-4)にも解いていただこうと思います。
問1 : 0123456789
問題内容
数字を使わずに0123456789を出力します。
私の回答
cat<<EOF>>a.cpp
#include <bits/stdc++.h>
int main() {
int a[]={'a','b','c','d','e','f','g','h','i','j'};
for(char b: a) printf("%d",b-'a');
}
EOF
g++ a.cpp
./a.out
私の感想
bashのワンライナーではありませんが、とりあえず想定の出力は得られました。
他に何も思いつかなかったのでまだまだ力不足という感じです。勉強します。
配信で紹介されていたseq infの回答がスマートで勉強になりました。
ChatGPTの回答
echo abcdefghij | tr a-j $(echo a | tr a ':')
出力結果
私の感想
10回くらいやり取りをして最終的にこの回答になりました。
数字を使用できないという制約が難しかったのかもしれません。
また、ChatGPTは実行できない状態のワンライナーも当たり前のように提供してくるので気をつけないといけませんね。
問2 : リダイレクト
問題内容
"ls 存在しないファイル 3>file 2>?"の?に文字列を入れてfileにlsのエラー出力を書き込みます。
私の回答
ls 存在しないファイル 3>file 2>&$(seq inf|head|sed '$d'|sed '$d'|sed '$d'|sed '$d'|sed '$d'|sed '$d'|sed '$d'|tac|sed '$d'|sed '$d')
私の感想
さっそく問1で学んだことを使ってみました。1-10を出力してからsed '$d'で最終行を削除していきます。
欲しい数字は3なので途中でtacを使いました。長いですがとりあえずはできたっぽいので良しとします。
ChatGPTの回答
私の感想
問題を理解してもらえませんでした。ChatGPTに問題を出すこと自体が難問です。
問3 : 終了ステータス
問題内容
1,2,3,4文字それぞれで終了ステータス1を出します(禁止事項は配信を参照)。
私の回答
私の感想
4文字の場合が思いつきませんでした(そもそも1,2,3文字の場合も適当に打っていただけですが)。
ChatGPTに聞いてみてもちゃんとした回答は返ってきませんでした。
難しいですね。精進します。
問4 : trueの終了ステータス
問題内容
何とかしてtrueの終了ステータスを0以外にします。
私の回答
私の感想
このあたりの問題から何をすればいいのかも分からなくなってきます。
配信を視聴しながら「そんなこともできるんだなぁ~」と感心するばかりです。
シェル芸勉強会はやっぱりハードですね。勉強になります(楽しいです)。
問5 : 大きなファイル記述子
問題内容
どこかのプロセスにおいて、大きい番号のファイル記述子を作って'/proc/プロセス番号/fd'で存在を確認します。
私の回答
私の感想
「そもそもファイル記述子って何だっけ?」というところから調査していました。
シェル芸勉強会の問題に挑戦するたびに「もっと勉強しなきゃなぁ~」という気持ちが強くなります。
まずはulimitコマンドと仲良くなるところから。$$/$$も積極的に使っていきたいです。
問6 : 10以上のファイル記述子を使い切る
問題内容
bashのプロセスで10以上のファイル記述子を使い切ります(開きっぱなしの状態にする)。
私の回答
私の感想
Misskeyの皆さんの回答を「なるほどなぁ~」という感じで眺めていました。
ちょうどよく頭も疲れてきたのでよく眠れそうです(3時間経過~)。
1問一問がハードなので6問もあると体力的にも精神的にも疲れます。
皆さん、ここまでお疲れ様でした。
おわりに
第66回シェル芸勉強会についてメモを書きました。
まだまだ勉強することが山ほどあるということが分かる素晴らしい勉強会でした。
私も10年後くらいにはシェル芸の本が書けるくらいの実力を身につけたいと思っております。
今回もとても勉強になりました。次回もよろしくお願いいたします。
あと途中からChatGPTに解いてもらうことを諦めていましたが、次回はまた挑戦したいと思います。
お知らせ
過去のお知らせ
シリーズ記事一覧
各シリーズの記事を下記にまとめてあります。
我が家のインコ「れもん&ぽぽ&ぐぐ」の日記
我が家のインコ「れもん&ぽぽ&ぐぐ」の日記18 : 2024年に感謝&2025年もよろしくお願いします
我が家のインコ「れもん&ぽぽ&ぐぐ」の日記17 : れもんもぐぐも平和な日々を送っています
我が家のインコ「れもん&ぽぽ&ぐぐ」の日記16 : れもんが本に掲載されたり、愛鳥祭に行ったりなど
我が家のインコ「れもん&ぽぽ&ぐぐ」の日記15 : 落花生、新聞紙、れもんとぐぐの邂逅
インコの飼い方と注意点(2024年版)
我が家のインコ「れもん&ぽぽ&ぐぐ」の日記14 : 大人に近づくれもんと遊ぶ余裕が出てきたぐぐ
我が家のインコ「れもん&ぽぽ&ぐぐ」の日記13 : 生後4ヶ月を迎えたれもんと我が家に慣れてきたぐぐ
我が家のインコ「れもん&ぽぽ&ぐぐ」の日記12 : ぽぽが亡くなりました、そしてぐぐがやってきました
インコ仲間「れもん&ぽぽ」の日記11 : ズグロシロハラインコのぽぽ、我が家へ
セキセイインコ「れもん」の日記10 : 生後100日のれもん、ついに喋る
セキセイインコ「れもん」の日記9 : 換羽期のれもん
セキセイインコ「れもん」の日記8 : 病院へ挑戦!
セキセイインコ「れもん」の日記7 : 外出用ゲージにチャレンジ!
セキセイインコ「れもん」の日記6 : 新宿ことり博に行ってきました!
セキセイインコ「れもん」の日記5 : 3週間経って順調に成長している模様
セキセイインコ「れもん」の日記4 : 鳥フェス千葉2024に行ってきました!
セキセイインコ「れもん」の日記3 : 2週間経って我が家にも慣れてきた模様
セキセイインコ「れもん」の日記:第2回
セキセイインコの「れもん」が我が家にやってきました!
AlpacaHackで始めるCTF入門
AlpacaHackで始めるCTF入門7:AlpacaHack Round 5 - XorshiftStreamに挑戦
AlpacaHackで始めるCTF入門6:AlpacaHack Round 4 - Simple Flag Checkerに挑戦
AlpacaHackで始めるCTF入門5:AlpacaHack Round 3 - qrimeに挑戦
AlpacaHackで始めるCTF入門4:AlpacaHack Round 2 - Simple Loginに挑戦
AlpacaHackで始めるCTF入門3:初めてのCTFに参加
AlpacaHackで始めるCTF入門2:DreamhackでCTF入門
AlpacaHackで始めるCTF入門1:初めてのCTF
シェル芸
第66回シェル芸勉強会メモ
第64回シェル芸勉強会メモ
ChatGPTでシェル芸勉強会の問題が解きたい
シェル芸botで遊びたい(Bash)
ROS 2
ROS 2シェル芸:URDFを置換してRVizで表示する
改訂新版『ROS 2ではじめよう』を読了&メモ書き
ROS 2 Jazzy公式チュートリアル02: ROS 2のノードとトピックについて
ROS 2 Jazzy公式チュートリアル01: ROS 2 Jazzyのインストールから動作確認まで
ROS 2 Humble 公式チュートリアル 02: ROS 2 のノード関係のコマンド
ROS 2 Humble 公式チュートリアル 01: 環境構築から turtlesim まで
技術ネタ
echoコマンドで"-n"をそのまま出力したい
シェル芸オンラインジャッジの紹介
Ubuntu 24.04 LTSにおいてノートPCを電源に接続していない状態だと画面が暗くなる問題の解決方法
HTMLのvideoタグで貼った動画のサムネイルがSafariで表示されない問題を解決
WSL2上のUbuntuのVimで矩形選択するための設定
HTMLとCSSで画像のスライドショーを作成
GitHub Actionsでサーバ上のブログを自動更新
Windows と Ubuntu のデュアルブート
ポケポケブログ
ポケポケブログ2:「幻のいる島」環境でもベトベトンデッキが強いです
ポケポケブログ1:ベトベトン+マタドガスデッキをおすすめする
読書日記
読書日記『本を読んだことがない32歳がはじめて本を読む』【ネタバレあり】
読書日記:近畿地方のある場所について【ネタバレあり】
改訂新版『ROS 2ではじめよう』を読了&メモ書き
映画日記
映画日記『ラストマイル』感想【ネタバレあり】
料理日記
料理日記:オムライス
料理日記:豆腐春巻き
料理日記:鶏肉とナスのほりにし炒め
料理日記:卵焼き
料理日記:鶏肉の照り焼き&小松菜のおひたし
料理日記:納豆蕎麦
料理日記:ローストビーフ
料理日記:バターガーリックチキン
その他
JR東日本公式のお忘れ物チャットにお世話になった話
『Omega Crafter』プレイ日記: チュートリアル編
自作ブログ大改造計画
HTML数式表示テスト
自作ブログ開始