並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 178件

新着順 人気順

シェルスクリプトの検索結果41 - 80 件 / 178件

  • シェルとUNIXコマンドの未来 ~ これからの10年で起きるシェルスクリプトの変化 - Qiita

    はじめに シェルスクリプトの世界は今後 10 年で大きく変化します。10 年という数字は切りが良い数字を持ってきただけで根拠はありません。これより長い時間がかかるかもしれませんし、もしかしたら短くなるかもしれません。しかし確実によりよい方向に変わっていくでしょう。Unix/Linux の標準コマンドはさまざまな問題を抱えています。Unix/Linux の標準コマンドに依存している限りシェルスクリプトに大きな改善はありません。これからのシェルスクリプトの世界は Unix/Linux の標準コマンドに依存しない世界です。それがどういうものになるのかをこの記事で解説しています。この記事は私の予言であり目標です。 シェルスクリプトの失われた30年の進化を取り戻す! 残念なことに、シェルスクリプトの世界は 30 年前から大きく変わっていません。それまでの間、プログラミング言語の世界、ソフトウェア開発

      シェルとUNIXコマンドの未来 ~ これからの10年で起きるシェルスクリプトの変化 - Qiita
    • シェルスクリプトの代替

      要約:決定版はとくにない。 kzys氏のシェルスクリプトを書かないという記事は面白かった。 https://blog.8-p.info/ja/2021/09/15/bash/ シェルスクリプト、ごくたまに書くことはあるが、ほんともう細かい話とかはすべて忘れているし、覚える価値を感じない。いまさら覚える必要のない技術だなと感じる。が、その一方でなかなか代替品がないようなニッチでもある。 自分は必要に応じてPythonかRubyか、といったあたりを使うことが多いが(perlはもう書けなくなった)、なかなかこれという感じには思い至らない。なにがいいんだろうね?という。 前提条件:インタラクティブな環境(REPL)はなくてもいい。そこはもう既存のシェルでいい。自動化したシェルスクリプト的なタスク記述を目標とする。bashの置き換えという意味では「どこにでもインストールされていることを前提にしないと

        シェルスクリプトの代替
      • Bun でクロスプラットフォームなシェルスクリプト

        Bun でクロスプラットフォームなシェルスクリプト 2024.01.20 Bun の `$` を使うと、クロスプラットフォームなシェルスクリプト(Bun Shell)を書くことができます。Bun Shell は macOS (zsh)、Linux (bash)、および Windows (cmd) と OS の違いを気にせずにシェルスクリプトを書ける、JavaScript オブジェクトとのやりとりが可能であることが特徴です。

          Bun でクロスプラットフォームなシェルスクリプト
        • Batsを使ったシェルスクリプトのテスト

          B! 58 0 0 0 (Bashの)シェルスクリプトに関してテストを導入するために フレームワークとしてBatsを導入します。 bats batsの使い方 assertion シェルスクリプトでなくても使える bats シェルスクリプトのテストツールとして恐らく一番有名なツール。 オリジナルはこちら。 こちらは4年くらい前に更新が止まっていますが、 個人でメンテナンスを続けていくことが難しくなったときに みんなで続けていこうとして使われる様になったのが 以下のレポジトリ。 batsというアカウントはすでに他に取られていたのでこういう名前になった模様。 Call for Maintainers · Issue #150 · sstephenson/bats Information about community-maintained fork · Issue #236 · sstephen

            Batsを使ったシェルスクリプトのテスト
          • シェルスクリプトで変数に改行文字を入れる方法の細かすぎる解説 - Qiita

            すべての POSIX シェルで使用可能なので私はこれを推奨します。シェルスクリプトの改行コードは Windows の CR+LF ではなく LF を使用している前提です。いくつかの環境ではシェルスクリプトの改行コードに CR+LF を使用していても動くようなのですが(未調査)、遅かれ早かれ問題になるはずです。また需要は少ないと思いますが、POSIX シェル以前の Bourne シェルでも使える(おそらく)唯一の方法です。Solaris 10 などの古い環境にも対応させるのであればこの方法しかありません。 メリットはコードの量が最も少なく最も速いということです。デメリットは 2 行になるため少し不格好でインデントをする場合に困るだけですが、インデントに関してはこのような定数はスクリプトの上部の関数の外で定義するので通常は問題にならないはずです。 LF=$'\n' bash、ksh、mksh、

              シェルスクリプトで変数に改行文字を入れる方法の細かすぎる解説 - Qiita
            • 生きているのならシェルスクリプトにだってなってみせる、そうPerlならね - Sexually Knowing

              シェルスクリプトを書くのをやめる - blog.8-p.info これを見て: 夢の可能性が高くなってきたんですが、Perlのプラグマかなにかで、シェルスクリプトと混在できる……というか、存在しないサブルーチン呼び出しを外部コマンド呼び出しにするやつありませんでしたっけ— aereal / 青木華絵 (@aereal) 2021年9月16日 まじだ... https://t.co/IF6SyBR4o8— Kazuyoshi Kato (@kzys) 2021年9月16日 Shell - run shell commands transparently within perl - metacpan.org use Shell qw(cat ps cp); $passwd = cat('</etc/passwd'); @pslines = ps('-ww'), cp("/etc/passwd"

                生きているのならシェルスクリプトにだってなってみせる、そうPerlならね - Sexually Knowing
              • set -eのもとで特定のコマンドの終了ステータスを変数に入れるシェルスクリプトのスニペット - Islands in the byte stream

                課題編 シェルスクリプトで「あるグローバルな状態を変える操作を行い、その結果をチェックし、状態をもとに戻す」みたいなタスクをするときに「その結果をチェックし」のところでコマンドの終了ステータスを変数に入れて置きたいみたいなことがあります。例えば、次のようなコマンド操作です。 set -e # グローバルな状態を変える操作を行う git merge --no-ff --no-commit $main_branch || true # 結果をチェックしてexit codeを変数に入れる git diff --cached --exit-code --quiet ; code=$? # グローバルな状態をもとに戻す git merge --abort # 上位プロセスに結果を渡す exit $code スクリプト全体には set -e (コマンドが失敗するとシェルスクリプトが即座に終了する)を効

                  set -eのもとで特定のコマンドの終了ステータスを変数に入れるシェルスクリプトのスニペット - Islands in the byte stream
                • POSIXシェルスクリプトではwhichではなくcommand -vを使うべき理由(+シェルスクリプト版which) - Qiita

                  重要 2022-01-30 追記 この記事で解説していた警告の出力は 2022-01-21 に取り消されました(参照 Revert deprecation of which)。そのため Debian which が GNU which に変わることは(少なくとも近い未来では)ないと思います。しかしながら which を使うよりは POSIX で規定されている command と type を使う方を推奨します。 はじめに which コマンドはシステムにインストールされてるとは限りません。実際に最小構成でインストールされてない環境として CentOS があります。一方 command -v は POSIX 規定されているので POSIX に準拠したどのシェルでも問題なく使えます。シェル上では which コマンドを使っても良いと思いますが、シェルスクリプトでは command -v を使う

                    POSIXシェルスクリプトではwhichではなくcommand -vを使うべき理由(+シェルスクリプト版which) - Qiita
                  • シェルスクリプト用の国際化ライブラリの決定版! sh-i18n を作りました ~ gettext.sh 代替・すべてのPOSIXシェルと環境に対応 - Qiita

                    シェルスクリプト用の国際化ライブラリの決定版! sh-i18n を作りました ~ gettext.sh 代替・すべてのPOSIXシェルと環境に対応ShellScriptBash国際化GettextPOSIX はじめに POSIX 準拠でどの環境でも動くシェルスクリプト用の国際化ライブラリ sh-i18n を作りました。同様のライブラリとしては GNU gettext に含まれている gettext.sh が有名です。すでにライブラリがあるのになぜ作ったのかと言えば、gettext.sh は基本的に GNU gettext 専用で、書きづらく単一の書き方でどのシェルどの環境でも動くわけではなかったからです。一言で言えばすべての環境で動く完璧なシェルスクリプト用の国際化ライブラリを作りたかったのです。 ちなみにすべての環境で動くというのはおそらく嘘です。動かない環境は今のところ認知していません

                      シェルスクリプト用の国際化ライブラリの決定版! sh-i18n を作りました ~ gettext.sh 代替・すべてのPOSIXシェルと環境に対応 - Qiita
                    • どこからでも実行できるシェルスクリプトの正しい書き方 ~ 冒頭でディレクトリを移動するな! - Qiita

                      はじめに どこからでもシェルスクリプトを実行できるようにと、冒頭でカレントディレクトリを移動するコードをベストプラクティスかのように書いてある記事がいくつかありますが、それは違います。例えば以下のようなコードは良くないコードです。 # スクリプトのある場所にカレントディレクトリを移動してはいけない cd "$(dirname "$0")" # 上記のやたらと面倒な書き方 WORKDIR=$(cd "$(dirname "$0")" && pwd) cd "$WORKDIR" 絶対に書いたらだめなのか?と聞かれるなら、理由をわかった上で「手抜きとして」なら書いても良いと思いますが、ベストプラクティスではありません。 補足 上記のコードは問題点を示すサンプルコードです。他にも cd が失敗した場合などの別の問題がありますが、この記事の内容とは無関係なので意図的に省略しています。私は set -

                        どこからでも実行できるシェルスクリプトの正しい書き方 ~ 冒頭でディレクトリを移動するな! - Qiita
                      • シェルスクリプトの後ろにバイナリを埋め込む手法はPOSIXで考慮されているという話 - Qiita

                        思いっきり雑学レベルの話ですみませんが、思い出した今書かないと忘れそうだなと思ったのでw この手法で何が出来るかと言うと、シェルスクリプトを実行するとスクリプトファイルの後ろ(exit で終了されて実行されない領域)に結合されたバイナリ形式の圧縮ファイル部分を抜き出して /tmp 以下に展開してそこに含まれているバイナリ形式の実行ファイルを実行して、一見シェルスクリプトのように見えるのに実はバイナリファイルを実行してるじゃんなどという楽しいことができます。いかにもハックまがいの手法に見えますが、どうやらこの手法は POSIX で考慮されているようです。 これを知ったのは「シバン shebang がないシェルスクリプトはどのシェルで動くかわからない(からちゃんと書いとけ)」の記事を書いている時に見つけた fish の PR 7802 です。fish はシバンがないスクリプトを実行するとエラー

                          シェルスクリプトの後ろにバイナリを埋め込む手法はPOSIXで考慮されているという話 - Qiita
                        • シェルスクリプトは ((i=i+1)) ではなく i=$((i+1)) で計算しなければいけない!という話 - Qiita

                          count=0 max=5 while ((count < max)); do # (( 算術式 )) は条件文で使うものです count=$((count + 1)) # 計算したいだけなら算術式展開を使います echo "$count" done ついでに言うと (( 算術式 )) は POSIX シェルで規定されていません。bash、ksh、mksh、zsh では使えますが dash、yash などの純粋な POSIX シェルに近いシェルでは使えません。 なぜ? (( 算術式 )) を使って変数に値を代入したり変更することができますが、それだけのために使ってはいけません。if や while などの条件文とともに使うものです。 C 言語を使ってる人なら比較的見かける書き方だと思いますが、(( 算術式 )) で値を変えるというのは、以下のように評価するついでに値も変えちゃえと、短く書く

                            シェルスクリプトは ((i=i+1)) ではなく i=$((i+1)) で計算しなければいけない!という話 - Qiita
                          • iOSエンジニアが開発効率のために最低限知るべきシェルスクリプト入門

                            bashやzsh,ターミナルは弄っていますか?黒い画面は古臭いと思ってませんか? iOSエンジニアと言えどXcode上でSwiftをコーディングだけが全てではありません。 CocoaPodsやCarthage、fastlane などエコシステムはシェルコマンド操作が必須です。 またAPIとの通信にシェルスクリプトを使うことで、効率よく情報を集めたり事前準備できたりします。 シェルスクリプトはSwiftと同じただの道具です。使い方を覚えて視野を広げましょう。 この記事で基礎知識を得よう この記事では難しいイディオムテクニックが書けるなどではなく、基本を理解してシェルスクリプトを読めるようになるための土台作りだとイメージしてください。 この土台を踏み台に少しずつシェルスクリプトに触れていくことで、より生産性の高いスキルを身に付けれるかと思います。 bashやzsh, fishと色々あるが基本は

                              iOSエンジニアが開発効率のために最低限知るべきシェルスクリプト入門
                            • AWS CLI短縮構文をシェルスクリプトから使うときに陥りやすい罠|Dentsu Digital Tech Blog

                              電通デジタルでSREをしている神田です。突然ですが、みなさんAWS CLI短縮構文をご存知でしょうか? awsコマンドを使っているときに、コマンドのオプションとしてfoo=bar や foo,bar,baz といった構造を持ったパラメータを要求されることがあります。このパラメータを記述するための構文が短縮構文(shorthand)です。 本記事では、普段なんとなくお世話になっている短縮構文をシェルスクリプトから使ったときに陥りやすい罠を紹介します。 AWS CLI短縮構文の簡単な例 短縮構文は、JSONと等価な値を簡潔に表現するための構文です。JSONとの対応をみると内容を理解しやすいです。 例えば、 ["foo","bar","baz"]というJSONの配列は、短縮構文では、 foo,bar,bazと書くことができます。 また、 {"key1": "val1", "key2": "val

                                AWS CLI短縮構文をシェルスクリプトから使うときに陥りやすい罠|Dentsu Digital Tech Blog
                              • 「Git for Windows」のシェルが「bash 4.4」から「bash 5.1」へ ~Vista対応も終了/シェルスクリプトの互換性問題に注意

                                  「Git for Windows」のシェルが「bash 4.4」から「bash 5.1」へ ~Vista対応も終了/シェルスクリプトの互換性問題に注意
                                • “Linuxマスター”を目指したい人のために――“応用力”をつけるためのLinux再入門(31~38)[シェルスクリプト挑戦編(2)制御構文と配列]

                                  “Linuxマスター”を目指したい人のために――“応用力”をつけるためのLinux再入門(31~38)[シェルスクリプト挑戦編(2)制御構文と配列]:人気連載まとめ読み! @IT eBook(60) 人気連載を電子書籍化して無料ダウンロード提供する@IT eBookシリーズ。第60弾は、Linuxの「シェルスクリプト」をマスターして、作業を効率化したいという人のために『“応用力”をつけるためのLinux再入門』から「シェルスクリプト挑戦編」の第2弾として、「制御構文と配列」をPDFとしてまとめました。

                                    “Linuxマスター”を目指したい人のために――“応用力”をつけるためのLinux再入門(31~38)[シェルスクリプト挑戦編(2)制御構文と配列]
                                  • コマンドの力を極限まで高めるシェルスクリプト、VSCodeで効率アップ

                                    Linuxを使いこなす上で、絶対にマスターしておきたいのが「コマンドライン操作」だ。この特集では、コマンドライン操作に苦手意識を持つ人に向けて、「シェル」や「端末」などの根本的な仕組みからコマンド操作の基本や活用方法までを解説する。 連続したコマンド処理を何度も実行したい場合、「シェルスクリプト」を作って使うと便利です。このPart5では、シェルスクリプトの基本を徹底解説します。効率良く作成するのに役立つVisual Studio Codeの活用法も紹介します。 Part4までで見てきたように、ファイルの名前を変えたり、いらないファイルを削除したり、ファイル内に記載された内容を昇順に並び替えたりといった、一つの作業をするだけであれば、その都度コマンドを実行してもさほど苦にならないでしょう。しかし、複数のコマンド実行を組み合わせたり、同じような処理を定期的に実行したりする必要がある場合、いち

                                      コマンドの力を極限まで高めるシェルスクリプト、VSCodeで効率アップ
                                    • リードタイムを測るシェルスクリプトを作ってチームの振り返り会を活発にした話 - Classi開発者ブログ

                                      こんにちは。エンジニアのすずまさです。 去年の夏頃にリードタイムの計測を始めてから、振り返りで良い気づきを得られるようになったりリードタイムを減らすアクションが生まれたりと良いことがたくさんあったので、今回はその紹介をしようと思います。 リードタイムの定義 『LeanとDevOpsの科学』では、リードタイムを「コードのコミットから本番稼働までの所要時間」として定義しています。 私たちのチームのリポジトリではブランチ戦略としてGitHub Flowを採用しており、mainへのマージと本番稼働のタイミングが近しいため「PRをopenしてからマージするまでの期間」をリードタイムとして定めて計測しました。 リードタイム計測を始めた動機 私たちのチームでは「チームのスピードがあまり出ていない気がする」という漠然とした課題感がありました。しかし、課題感はありつつも、ではどうするかと言われると具体的なア

                                        リードタイムを測るシェルスクリプトを作ってチームの振り返り会を活発にした話 - Classi開発者ブログ
                                      • zxの紹介 〜 さよならシェルスクリプト そして伝説へ|Offers Tech Blog

                                        はじめに こんにちは!! プロダクト開発人材の副業転職プラットフォーム Offers を運営する株式会社 overflow 普通のバックエンドエンジニアの takkun7171 でございます。 最近は Apex もやってますが、筋トレにハマっています。可変式ダンベル買ったんですけど、これはいいモノですね。齢 40 のオッサンだけど、ちゃんと鍛えれば筋肉育つんだから!!w zxとは 簡単に言うと、JavaScript でシェルスクリプトがお手軽に書けます。 zx は Node の child_process のラッパーで、$で囲んで shell コマンドを簡単に実行できるので、 zxを使いこなせれば、シェルスクリプトとおさらばできます。 zx は 2021 年に最もトレンディだったプロジェクトだったらしいです。すごいですね。 紹介記事はネット上にちらほらあるのですが、便利さの割に周りで使って

                                          zxの紹介 〜 さよならシェルスクリプト そして伝説へ|Offers Tech Blog
                                        • Nuxt.jsで未利用のVueコンポーネントを探すシェルスクリプト - Qiita

                                          最近Nuxt.jsでWebアプリを作ってるけど、 度重なる改修でVueコンポーネントが乱立。。 使ってないのもたくさんありそうなので、調べるスクリプトを作ってみた。 スクリプトはこんな感じ #!/bin/bash # vueコンポーネントの一覧を取得 FILES=`find components -name "*.vue"` for i in $FILES; do # 全体からコンポーネントをインクルードしている行の数を取得 NUM=`grep -r "$i" * | wc -l | sed -e "s:[^0-9]*::g"` # ファイル名と見つけた件数を表示 echo "** ${NUM}: ${i}" # grepした結果を表示(確認用) grep -r "$i" * echo "" done ** 1: components/Hero.vue pages/index.vue:im

                                            Nuxt.jsで未利用のVueコンポーネントを探すシェルスクリプト - Qiita
                                          • バージョニングが有効化された 大量のAmazon S3 バケットをシェルスクリプトで一撃削除してみた(ver.2) | DevelopersIO

                                            大量のS3バケットを手動で削除するのはめんどくさい…シェルスクリプトで一撃削除しましょう。S3のオプジェクトが1000を超える場合に使えるシェルスクリプトです。 こんにちは!AWS事業本部のおつまみです! S3バケットを一撃で削除したいなぁと思ったことはありますか?私はあります。 そう思い昨日こちらのブログを執筆しました。 このブログのスクリプトでも問題なく動くのですが、とある方からTwitterでこちらのコメントをいただきました。 #DevelopersIO バージョニングが有効化された 大量のAmazon S3 バケットをシェルスクリプトで一撃削除してみた https://t.co/esjLT5Nq32 こんだけ呼び出してAPIのレート制限は大丈夫かな。? — Kento.Yamada (@ymd65536) April 14, 2023 そしてアドバイスをいただきスクリプトを修正した

                                              バージョニングが有効化された 大量のAmazon S3 バケットをシェルスクリプトで一撃削除してみた(ver.2) | DevelopersIO
                                            • Piro🎉"シス管系女子"シリーズ累計5万部突破!!🎉 on Twitter: "大量ファイルの消失事故事例。シェルスクリプト製の重いタスクが走ってる最中に、そのスクリプトを更新した結果、(bashの「実行中のスクリプトが書き換わった場合、書き換え後の内容で処理が継続される」仕様… https://t.co/6T7WSX7f8H"

                                              大量ファイルの消失事故事例。シェルスクリプト製の重いタスクが走ってる最中に、そのスクリプトを更新した結果、(bashの「実行中のスクリプトが書き換わった場合、書き換え後の内容で処理が継続される」仕様… https://t.co/6T7WSX7f8H

                                                Piro🎉"シス管系女子"シリーズ累計5万部突破!!🎉 on Twitter: "大量ファイルの消失事故事例。シェルスクリプト製の重いタスクが走ってる最中に、そのスクリプトを更新した結果、(bashの「実行中のスクリプトが書き換わった場合、書き換え後の内容で処理が継続される」仕様… https://t.co/6T7WSX7f8H"
                                              • シェルスクリプトの説明をコメントで書いてコマンドラインでヘルプとして表示する - Qiita

                                                Motivation 実行可能なシェルスクリプトを書く際、なるべく -h や --help のような引数でヘルプメッセージを表示できるようにしておきたい派です。 以前はPOD形式1でファイル末尾にドキュメントコメントを書き、 pod2text を実行して表示していたのですが、以下の理由でやり方を変えたいと思いました: どちらかといえばファイルの先頭に書きたい PODで書くと行数が長くなりがち 最近、PODを書く機会がほとんどないので、毎回記法を忘れている pod2text がどの環境でも動くという前提は置かない方がいいかもしれない(?)2 2ヶ月前ぐらいから悩んでいましたが、ようやくこれでよいかなというやり方にたどり着きました。 ヒアドキュメントで十分という人には無用のやり方かもしれませんが、以下で示すようなやり方にしておけば、スクリプトのフォーマットを揃えることができるでしょう。 動作確

                                                  シェルスクリプトの説明をコメントで書いてコマンドラインでヘルプとして表示する - Qiita
                                                • 【動画解説付き】初心者のためのラズパイLチカ完全ガイド (シェルスクリプトでLチカ) - Qiita

                                                  どうも、プログラミングの鬼シヨツ鬼です。 この記事では「Raspberry Pi(ラズパイ)で電子工作を見てみたいぜ」って人に向けて電子工作の基本であるLEDをチカチカさせる(Lチカ)方法を電子回路の作成からプログラム作成まで説明します。 初心者向けにコマンドの意味などもできるだけ説明しているので、ぜひ参考にしてみてください。 ちなみに、この記事は次の動画と同じ内容ですので、記事だけだと分かりづらい部分は、そちらもご活用ください。 (ボタンの位置や操作方法などがわかるので、初心者の方は動画のほうが分かりやすいかも) YouTube:【電子工作】ラズパイでLチカをする方法を0から解説 LEDをチカチカ光らせることです。光らせるだけなので、地味といえば地味ですが、とてもシンプルで分かりやすいため電子工作をする上では最も基本となる題材です。ここから応用させていくと自分が本当に作りたいものを作れる

                                                    【動画解説付き】初心者のためのラズパイLチカ完全ガイド (シェルスクリプトでLチカ) - Qiita
                                                  • jqコマンドとシェルスクリプトの上手い速い使い方

                                                    はじめに シェルスクリプトから jq コマンドを使う記事はいくつも見かけますが、あまりにも面倒でよくない書き方ばかりが見つかるのでベストプラクティスをまとめました。 この記事は「詳細解説 jqコマンドとシェルスクリプトの簡単で正しい使い方 〜 データの流れを制するUNIX哲学流シェルプログラミング」の要約版です。詳しい解説やもう少し高度な使い方を知りたい方、シェルスクリプトの考え方についてはリンク先を参照してください。リンク先は長すぎたので、こちらはとりあえず使いたい人用に簡潔にまとめました。(あと、いつも qiita を使っているので zenn を使ってみたかった) 👎 ダメな書き方 よく見かける書き方ですが、コードの見通しが悪く、メンテナンス性が低く、パフォーマンスが(かなり)悪く、特定の場合に不具合が発生する書き方です。 for item in $(jq -c '.items[]'

                                                      jqコマンドとシェルスクリプトの上手い速い使い方
                                                    • lambrollでシェルスクリプトをLambdaにデプロイして実行する

                                                      lambrollでシェルスクリプトをLambdaにデプロイして実行する投稿者: inamuu 投稿日: 2023年1月19日2023年1月19日 概要 仕事をしていると、歴史のあるシェルスクリプトがEC2で動いていたりすることがある。 そういったスクリプトをなにかしらのスクリプト言語で書き換えるのもやぶさかではないのだが、数が多いと諦めの気持ちが湧き出てくる。 そこで、シェルスクリプトのままでもLambdaにデプロイしてバッチ的に動かして、サクッと移行できたりしないかなという思いが出てきた。 そこで、Lambdaのデプロイツールにlambrollを検証してみることにした。 インストール 手元がMacOSなのでbrewでインストール。 $ brew install fujiwara/tap/lambroll $ lambroll versions 2023/01/18 23:14:53 [i

                                                        lambrollでシェルスクリプトをLambdaにデプロイして実行する
                                                      • マスタリングLinuxシェルスクリプト 第2版

                                                        Linuxシェルスクリプトの解説書。その中でも特にbashのシェルスクリプティングに焦点を当てています。シェルスクリプトの書き方、デバッグ方法、bashプログラミングの基本といったシェルスクリプティングの基礎から、sedやAWKなど各種ツールとの連携といった実践的な応用までを体系的に解説します。WebサーバーなどのLinuxシステムの管理を任されるようになった初級の管理者にも、もっと高度で実践的なテクニックを必要としている中級の管理者や開発者にも広く役に立つ内容です。 監訳者まえがき まえがき 1章 bashのスクリプトとは何か、なぜそれが必要なのか? 1.1 技術要件 1.2 Linuxのシェルの種類 1.3 bashスクリプトとは何か? 1.4 bashコマンドの階層 1.4.1 コマンドの種類 1.4.2 コマンドのパス 1.5 スクリプトのためのテキストエディターの準備 1.5.1

                                                          マスタリングLinuxシェルスクリプト 第2版
                                                        • VScodeのユーザースニペットを生成してくれるシェルスクリプト - Qiita

                                                          Python の import 部分って色々なスクリプトで使い回すこと多いですよね。 VScodeではよく使うパターン文をユーザースニペットというjsonファイル(Pythonならpython.json)にあらかじめ定義しておくことで、いちいち該当箇所をコピー&ペーストせずに使えて便利! なのですが、、そもそもそのjson形式に整形するところ(文字列への"" や区切りの , を追加する)にちょっと煩わしさを感じていました。 そこで、登録したいパターン文を貼り付けるだけでVS Codeのユーザースニペットのjson形式に変換してくれるシェルスクリプトを作成しました(実際には ChatGPT に作ってもらいました笑)。 #!/bin/bash # prefix and description can be changed as you like prefix="my_snippet" desc

                                                            VScodeのユーザースニペットを生成してくれるシェルスクリプト - Qiita
                                                          • シェルスクリプト オプション解析 徹底解説 (getopt / getopts) - Qiita

                                                            はじめに シェルスクリプトでオプション・引数解析といったらまず挙がるのが getopt と getopts です。さてどちらを使うべきでしょうか?始めに断っておくと実は私はどちらも積極的には使っていません。なぜなら独自実装でもほとんどコードは変わらず、より柔軟な処理ができるからです。とはいえ getopt と getopts はシェルスクリプトの基本なのでこれらの使い方について解説したいと思います。(解説が不要な人はそれぞれの「使用方法」を読んでください。) 本編の前に この記事を書いたあと独自実装のオプション解析コードを書き最終的に getopt や getopts よりも高機能で使いやすいオプションパーサー getoptions を開発しました。もはやちまちまとしたコードを手書きする作業は不要です。シェルスクリプトで簡単に引数解析したいだけという方にはこちらをおすすめします。POSIX

                                                              シェルスクリプト オプション解析 徹底解説 (getopt / getopts) - Qiita
                                                            • シェルの歴史 総まとめ(種類と系統図)と POSIX の役割 〜 シェルスクリプトの現在・過去・未来【POSIX改訂間近】 - Qiita

                                                              シェルの歴史 総まとめ(種類と系統図)と POSIX の役割 〜 シェルスクリプトの現在・過去・未来【POSIX改訂間近】ShellScriptBashUNIXPOSIXksh はじめに Linux / Unix をターミナルから使う時に使用するソフトウェアがシェルです。シェルの役目は CLI ベースのユーザーインターフェースとしてユーザーからの操作でプログラム(主に CLI コマンド)の実行を仲介したり、その操作を自動化するためのシェルスクリプトを実行する機能を持っています。現在最も使用されているシェルは GNU プロジェクトが開発している bash ですが、OS によって異なるさまざまなシェルが使われています。 シェルの最低限の仕様は POSIX で標準化されています。この標準規格に準拠しているシェルは「POSIX(準拠)シェル」と一般的に呼ばれています。シェルは大別すると「POSIX

                                                                シェルの歴史 総まとめ(種類と系統図)と POSIX の役割 〜 シェルスクリプトの現在・過去・未来【POSIX改訂間近】 - Qiita
                                                              • neue cc - C#でgoogle/zx風にシェルスクリプトを書く

                                                                あまりシェルスクリプトを書かない私なのですが(小物でもなんでも書き捨てC#で書くスタイル)、CI だの .NET Core だのなんなので、全く書かないというわけにもいかない昨今です。まぁしかしcmdは嫌だし今更(?)PowerShellもなぁという感じもあり、bashねぇ、とかブツブツ言いながらしょっぱいスクリプトを書く羽目になるわけです。 そこに颯爽と現れたのが google/zx。素敵そうだなーと思いつつJavaScriptを日常的に書くわけでもないのでスルーしてたのですが、こないだもちょっと複雑なシェルスクリプトをJavaScriptで書くで紹介されていて、なるほど色物じゃなくて便利なのか、そうだよね便利だよね!と思い、私は日常的にC#を書くので、C#だったら便利だな、同じ感じで書けるなら、と、思い至ったのでした。 というかまぁzx見て思ったのが、これぐらいの内部DSL、C#でもい

                                                                • シェルスクリプトを最大34倍に高速化、並列化の難問を解決した技術を解説

                                                                  マサチューセッツ工科大学(MIT)は2022年6月7日(米国時間)、同大学の研究者などが参加するオープンソースプロジェクト「PaSh」の成果を紹介した。PaShはUNIXのシェルスクリプトを自動的に並列化し、高速化するシステムだ。2022年5月にリリースされたPaSh v0.8が最新版となる。 システムのシェルインタープリタに変更を加えることなく利用できることがPaShの特徴だ。既存のシェルに追加し、PaShの使用をシェルスクリプトに指示するだけで、シェルスクリプトを並列化することが可能だ。 UNIXのシェルは約50年前に開発が始まり、現在も広く使われているプログラミング環境だ。しかし、シェルスクリプトの正確で自動的な並列化は、研究者が長年取り組んできた難題として残っている。 最近のシェルスクリプト並列化システムは、スクリプトを前もって並列化することで、ほぼ自動的に高速化する。だが、こうし

                                                                    シェルスクリプトを最大34倍に高速化、並列化の難問を解決した技術を解説
                                                                  • Unix/Linux シェル考古学 ~シェルスクリプトが本物のプログラミング言語である理由~ - Qiita

                                                                    はじめに タイトルは「Unix考古学」のパクリですがこの記事と直接の関係はありません。Unix 誕生時点のシェルから POSIX シェルが策定されるまでのシェルの歴史を調べてみました。サブタイトルが微妙にタイトルとずれてる感じがするかもしれませんが、この記事はもともとシェルスクリプトは何を目指して設計された言語なのか疑問になって調べ始めたものだからです。時々「シェルスクリプトじゃなくて本物のプログラミング言語で書くべきだ」というような話を目にしますが、実際はシェルスクリプトはプログラミング言語なのか?そうではないのか?なので、むしろサブタイトルのほうが本題です。 ソースは wikipedia(日本語版は情報が古いので主に英語版)およびそこからの外部リンクなどを適当に調べてまとめたものです。内容に疑問に感じる場合は独自で調べるのをおすすめします。ちなみに ~sven_mascheck/ はお

                                                                      Unix/Linux シェル考古学 ~シェルスクリプトが本物のプログラミング言語である理由~ - Qiita
                                                                    • ShellCheckでシェルスクリプトの品質を高めよう | フューチャー技術ブログ

                                                                      HansによるPixabayからの画像 シェルスクリプト連載の第1弾です。 シェルスクリプトは強力かつ便利で、いろいろなところで使われています。ただ、自由度が高い一方で、ちょっとしたミスを犯しやすく、かつミスに気づきにくい、ということも多いです。また、ミスに気づいたときには大きな影響が及んでいる、ということもあるでしょう。 本記事では、シェルスクリプトの品質を高めるために ShellCheck というツールを使って、シェルスクリプトの品質や安全性を高めよう、という趣旨の記事です。 <img src=”https://github.com/koalaman/shellcheck" alt="koalaman/shellcheck - GitHub“ loading=”lazy”> ShellCheck を使うと何がうれしいの?ShellCheck はシェルスクリプトのための静的解析ツールです

                                                                        ShellCheckでシェルスクリプトの品質を高めよう | フューチャー技術ブログ
                                                                      • 返り値のチェックでシェルスクリプトが止まらないようにする - CUBE SUGAR CONTAINER

                                                                        シェルスクリプトで set -e しておくとコマンドの返り値が非ゼロ (エラー) のときにスクリプトを止めることができる。 この機能を使うと、コマンドの実行結果がエラーになった状態で処理が突き進んでしまうことを防止できる。 ただ、この機能は便利な反面、スクリプトが意図せず止まってしまうこともある。 今回は、それを回避する方法について。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.14.6 BuildVersion: 18G103 $ bash --version GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18) Copyright (C) 2007 Free Software Foundation, Inc. もくじ もくじ set -e

                                                                          返り値のチェックでシェルスクリプトが止まらないようにする - CUBE SUGAR CONTAINER
                                                                        • AWS 全リージョンの (ほぼ)全リソースをリストアップするシェルスクリプト | iret.media

                                                                          各リージョンの各サービスを個別に確認しなくても、全てのリソースをリストアップすることができます。 AWSアカウント解約時に、不要なアクティブリソースが残っていないかの確認にも役立つかもしれません。 AWS アカウントを解約したときに、アクティブなリソースがすべて自動的に終了されるとは限りません。アカウントを解約する前に、アクティブなリソースがあるかどうかを確認し、それらを終了することがベストプラクティスです。 get-resources.sh for region in `aws ec2 describe-regions --query 'Regions[].RegionName' --region us-west-1 --output text` do echo "region = ${region}" aws resourcegroupstaggingapi get-resources

                                                                            AWS 全リージョンの (ほぼ)全リソースをリストアップするシェルスクリプト | iret.media
                                                                          • シェルスクリプト「whileの中の変数が見えない」解決方法5選 〜 パイプ・サブシェル問題 - Qiita

                                                                            はじめに コマンドの出力をパイプ + while read ループで処理した時にループの中の変数がループの外で使えない(変数の中身が空になっている)という問題の解決方法の紹介です。これも何番煎じかのネタだと思いますが、良くない解決方法が目につき、あまり紹介されてないテクニックもあるので、それらの情報をすべてまとめ、何がどういう理由で駄目なのか?良い方法とはなにか?を解説するのがこの記事の趣旨です。推奨 5 パターン(+非推奨 3 パターン)の解決方法を解説しています。 パイプ・サブシェル問題とは? 以下のような問題です。 #!/bin/sh total=0 seq 10 | while IFS= read -r line; do echo "$line" total=$((total + line)) done echo "$total" # 1 + 2 + ... + 10 = 55 と

                                                                              シェルスクリプト「whileの中の変数が見えない」解決方法5選 〜 パイプ・サブシェル問題 - Qiita
                                                                            • Chromebookで簡単に開発環境を構築するシェルスクリプトを書いた (日本語化 + VS Code) - Qiita

                                                                              安価かつ公式にLinuxがサポートされたデバイスとして優秀なChromebook。 Linuxコンテナの構築・削除が非常に簡単なので、初心者のLinux学習用にも便利だと思います。 しかしながら現時点での構築手順はやや面倒な点があり、最低限の環境を構築するにも若干の時間を要してしまいます。 ということで、どんな言語の開発者にとっても共通となるであろう最低限の環境を構築するスクリプト crostini-dev-setup-ja を書きました。 TL;DR 最低限の環境を整えるシェルスクリプトを書いた 日本語入力環境(fcitx-mozc) 日本語フォント VS Code VS Codeの日本語化アドオン 初心者向けを意識しているため、ロケール等可能な範囲で全て日本語化している GUIでの操作不要で、インストールスクリプトを叩くだけで全て設定できる セットアップ中はChromebookを触る必

                                                                                Chromebookで簡単に開発環境を構築するシェルスクリプトを書いた (日本語化 + VS Code) - Qiita
                                                                              • Bashシェルスクリプトでログ出力をシンプルに実現する方法 | ゲンゾウ用ポストイット

                                                                                ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。 はじめにシェルスクリプトはお世辞にも読みやすいコードとは言えません。 なのでできる限りシンプルに、短く記述したいのですが、工夫をしないと ログ出力 処理がごちゃごちゃしてしまいます。 例えば、すべての出力、エラー出力をログとして保存しようとすると以下のような記述ができます。 #!/usr/bin/env bash LOG_OUT=/tmp/stdout.log LOG_ERR=/tmp/stderr.log # 標準出力 echo foo1 >>$LOG_OUT 2>>$LOG_ERR echo foo2 >>$LOG_OUT 2>>$LOG_ERR echo foo3 >>$LOG_OUT 2>>$LOG_ERR # 標準エラー出力 ls

                                                                                  Bashシェルスクリプトでログ出力をシンプルに実現する方法 | ゲンゾウ用ポストイット
                                                                                • ユニークなS3バケット名かを判定してS3バケットが作れるシェルスクリプトを作ってみた | DevelopersIO

                                                                                  「世界に一つだけのS3バケット」を作りたい……できればコンソールに張り付く事なく! シェルスクリプトを駆使してユニークなS3バケット名かを判定した上でS3バケットを作成できるようにしてみました。 急に寒さが増しましたが、皆さまはいかがお過ごしでしょうか。 ▲ 「正しい羽毛布団と毛布の重ね方のイラスト 」ですって 丁寧に布団の層を作り上げても一晩で台無しになっています。寒くなったら少しはマシになると思っていました。 こんにちは、AWS事業本部のShirotaです。寝相の悪さが露呈した今、渡航時が心配で堪りません。去年は暴れたのかな 早速ですが、寒さに負けずに本題に入っていきましょう。 量産型バケットを作ろうとして怒られた話 先日、Amazon Comprehendを触った時にS3バケットを用意しようとしたところ、以下のようなエラーが出てしまいました。 ▲ 皆同じ事を考えるものだ これは「既に

                                                                                    ユニークなS3バケット名かを判定してS3バケットが作れるシェルスクリプトを作ってみた | DevelopersIO