並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 176件

新着順 人気順

シェルスクリプトの検索結果81 - 120 件 / 176件

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

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

      ユニークなS3バケット名かを判定してS3バケットが作れるシェルスクリプトを作ってみた | DevelopersIO
    • シェルスクリプトのechoで”問題なく”色をつける(bash他対応) - Qiita

      残念。というか当然というか。-e なしでは \033 がエスケープ文字と解釈されず色がつかないものがあります。このように echo コマンドはシェルによって実装がバラバラで互換性がありません。POSIX ではどのように規定されているのか見てみると以下のように書かれています。 If the first operand is -n, or if any of the operands contain a <backslash> character, the results are implementation-defined. 「最初のオペランド(引数)が -n またはオペランドにバックスラッシュが含まれている場合、その結果は実装による」ということなのでバックスラッシュの解釈はどの実装も POSIX 違反にはなりません。一応その下の行に追加の仕様が書いてあり、エスケープシーケンスを解釈するのが

        シェルスクリプトのechoで”問題なく”色をつける(bash他対応) - Qiita
      • シェルスクリプトの [ -a (AND) と -o (OR) ] は非推奨だかんね - Qiita

        特に詳しく説明することもないですが [ ] (test) で使える演算子の -a (AND) と -o (OR) は POSIX では非推奨(廃止とマーク)となっているので移植性を重視する場合は使わないようにしましょう。[ 条件1 -a 条件2 ] の代わりに [ 条件1 ] && [ 条件2 ]、[ 条件1 -o 条件2 ] の代わりに [ 条件1 ] || [ 条件2 ] と書けば十分です。 -a と -o が不要ということは ( ) があってもしょうがないのでこちらも廃止されます。複雑な条件式は避けた方が良いと思いますが、優先順位を指定したいのであれば [ 条件1 ] && { [ 条件2 ] || [ 条件3 ]; } のように { } を使用します。( )を使って [ 条件1 ] && ( [ 条件2 ] || [ 条件3 ] ) と書いても動きますがサブシェルが生成され遅くなる

          シェルスクリプトの [ -a (AND) と -o (OR) ] は非推奨だかんね - Qiita
        • シェルスクリプトの関数の書き方 functionや()の本当の違いとは? 〜 あなたの知らないシェル関数の真実 - Qiita

          シェルスクリプトの関数の書き方 functionや()の本当の違いとは? 〜 あなたの知らないシェル関数の真実ShellScriptBashUNIXshellPOSIX はじめに シェルスクリプトの関数定義の方法は function や () を書くか省略するかの違いで三通りあります。これらは省略可能なだけで同じだと言われることが多いですがそれは本当なのでしょうか?それが本当ならなぜそのような書き方の違いが生まれたのでしょうか? 関数は Bourne シェルの開発者が重要だと考え最後に取り入れた構文です。関数を知らずしてシェルスクリプトを語ることは出来ません。シェルスクリプトが小さい場合は必要ないかもしれませんが、大きくなり後から読み返して何をやってるのかわからなくなる原因の一つは関数を正しく使っていないからです。この話についても詳しく書きたいのですが、今回のテーマではないので関数を使って

            シェルスクリプトの関数の書き方 functionや()の本当の違いとは? 〜 あなたの知らないシェル関数の真実 - Qiita
          • シェルスクリプトの正規表現の詳細解説(令和最新版)〜 基本正規表現(BRE)と拡張正規表現(ERE) - Qiita

            はじめに この記事は UNIX コマンド(POSIX コマンド)で使える正規表現(基本正規表現 BRE と拡張正規表現 ERE)を正しく理解したい人のための記事です。正規表現とはなにか?みたいな基本的な話はしません。他のプログラミング言語で使ってるから正規表現自体は知ってるつもりだけど、シェルスクリプトだといつもの正規表現が使えず苦手だという人のために、シェルスクリプトにおける正規表現を深く理解できるような内容にしています。 基本的に POSIX に準拠した内容を中心に解説しており、どの環境にも対応した内容にしています。さらに Linux (GNU) や BSD や macOS の環境固有の拡張された正規表現、歴史的な UNIX コマンドの話や各コマンド毎の細かい違いなど、実際に使う上で必要な知識も解説しています。 注意 bash 等のシェルの正規表現についてはこの記事では詳しく扱っていま

              シェルスクリプトの正規表現の詳細解説(令和最新版)〜 基本正規表現(BRE)と拡張正規表現(ERE) - Qiita
            • シェルスクリプトのパッケージマネージャー「basher」の機能概要と使い方 - Qiita

              はじめに シェル環境で作業することの多いみなさんは、シェルスクリプトのパッケージ管理ツールが欲しいと思ったことはあるでしょうか? 私はあります。一時期その欲求が高まって、つい自作してしまったほどです。1 本稿では、最近見つけたシェルスクリプトのパッケージ管理ツールを1つ紹介します。 こちらです: https://github.com/basherpm/basher 「basher」という名前で、一見Bash専用に見えますが、実はZshとfishにも対応しているそうです。 Even though it is called basher, it also works with zsh and fish. 私自身、BashとZshで動作を確認しており、これから常用していく予定です。 中身は完全にシェルスクリプトで実装されています。 READMEやコマンドのヘルプをざっと見たところ、以下のような機

                シェルスクリプトのパッケージマネージャー「basher」の機能概要と使い方 - Qiita
              • ShellSpec を使って、テスト駆動でシェルスクリプトを書いてみる

                シェルスクリプトにテストを書くというイメージはなかったのですが、最近使ったShellSpecがとても使いやすくて、シェルスクリプトのテストのイメージが覆されたので紹介です。 ShellSpecとは? ShellSpecはシェルスクリプトでBDD(behavior driven development) のユニットテストを行うためのためのフレームワークです。 RSpecのように、まるで文章のようなテストを記述できます。豊富なMather も提供されています。 Describe 'hello.sh' Include hello.sh It 'says hello' When call hello ShellSpec The output should equal 'Hello ShellSpec!' End End TDDライクにシェルスクリプトを書いてみる ShellSpecの便利さを知って

                  ShellSpec を使って、テスト駆動でシェルスクリプトを書いてみる
                • [一撃]正規表現で一致したS3バケットを削除するシェルスクリプトを書いてみた | DevelopersIO

                  うわっ…私のバケット、多すぎ…? こんにちは、のんピ です。 cdk deployとcdk destroyで楽しくスクラップビルドをしていたら、S3バケットが大量に作成されていた なんてことはありませんか? 私はあります。 現在の私の環境のS3バケットは42個もありました。 マネージメントコンソールからS3バケットを削除する際には、バケットを1つずつ選択して一度バケットの中身を空にしてから削除する必要があります。 真心を込めた手作業で対応しても時間が勿体ないです。 ここでS3バケット名をご覧いただくと分かりますが、作成されたS3バケット名は先頭は固定の文字列で、後半はランダムな文字列(モザイクの裏側)になっています。 これを利用して正規表現に一致したS3バケットを一撃で大量に削除しようと思います。 正規表現に一致したS3バケットを削除するシェルスクリプト 作成したシェルスクリプトを記載しま

                    [一撃]正規表現で一致したS3バケットを削除するシェルスクリプトを書いてみた | DevelopersIO
                  • シェルスクリプトでスクレイピングするために`pup`を使う | ゲンゾウ用ポストイット

                    ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。 はじめに以前、シェルスクリプトからhtmlのスクレイピングをしたときの方法を共有します。 Go言語で作られたpupというツールを使いました。 検証環境$ uname -moi x86_64 x86_64 GNU/Linux $ bash -version GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)pup とはコマンドラインの HTML 解析ツールです。 標準入力から情報を読み込み、標準出力に結果を出力します。 それだけだと cat と同じなのですが、 HTML の要素をフィルタリングすることができます。フィルタリングのための HTML 要素指定方法として、一般的に

                      シェルスクリプトでスクレイピングするために`pup`を使う | ゲンゾウ用ポストイット
                    • シェルスクリプト (bash, ksh, yash, zsh) で正規表現を使う方法のまとめ - Qiita

                      はじめに 一部の POSIX シェルには、シェル自体に正規表現対応の機能が含まれており、外部コマンドに依存せずに正規表現による比較を行えます。すべての POSIX シェルで使えるわけではありませんが、シェルに含まれている機能であるため環境の違いを気にする必要はなくパフォーマンスも良いというメリットがあります。しかし正規表現に対応している bash、ksh、yash、zsh で、実装にそれぞれ違いがあります。この記事ではその違いをまとめました。現時点でのそれぞれの最新版である bash 5.2、ksh 93u+m/1.0.3、yash 2.53、zsh 5.9 で動作確認しています。 なお POSIX 正規表現の話や、コマンド(POSIX コマンド・UNIX コマンド)で正規表現を使用する場合の注意点などは「シェルスクリプトの正規表現の詳細解説(令和最新版)〜 基本正規表現(BRE)と拡張正

                        シェルスクリプト (bash, ksh, yash, zsh) で正規表現を使う方法のまとめ - Qiita
                      • 移植性・可搬性の高いシェルスクリプトを書くための技術まとめ - Qiita

                        はじめに この記事は私がシェルスクリプト用のBDDテスティングフレームワーク ShellSpec の開発を通して得た移植性・可搬性の高いシェルスクリプトを書くための技術のまとめ、および関連する私の記事へのリンク集です。関連する新しい記事を書いたらここからリンクしますので、このページをストックするなりブックマークしておくと良いと思います。 この記事を変更通知目的でストックしている方へ 記事が多くなりリンク集のメンテナンスが大変になったため、この記事の定期的な更新はやめることにします。もし更新通知が必要な方は代わりに私をフォローしてください。ほとんどシェルスクリプト関係の記事しか書いていないためそれで十分目的を果たせると思います。 Q & A なぜシェルスクリプトで書くのか? シェルスクリプトには他のスクリプト言語にはない特徴が二つあります。一つ目はシェルスクリプトはコマンドを連携させるのに適

                          移植性・可搬性の高いシェルスクリプトを書くための技術まとめ - Qiita
                        • シェルスクリプト風に C# を使えるライブラリ ProcessX 試してみた

                          のいえさんの blog をチェックしにいったら最新記事が個人的に刺さったので紹介です! GitHub リポジトリはこちら。 何が出来るかというと、シェルスクリプトとかでやるような処理を C# で素敵に書けるような奴です。 私は知らなかったのですが、 zx というものを google さんが出していたんですね。 こちらは JavaScript でやるみたいなのですが、それの C# 版をのいえさんが作ってました。 試してみよう 手軽に書きたい時は Visual Studio 本体なんて重たいの立ち上げる気にならないということもあると思うので .NET SDK が入ってる環境に VS Code に C# 拡張機能入れたものでやってみたいと思います。 最近の .NET (C#) は CLI も充実していて基本的に CLI で出来ます。なのでコンソールアプリを作りたいときは以下のように叩くと ZxT

                            シェルスクリプト風に C# を使えるライブラリ ProcessX 試してみた
                          • あなたは世界初の「NoSQL」はシェルスクリプト用のRDBMSだと知っていますか? - Qiita

                            はじめに 知っての通り NoSQL とは一般的には RDBMS ではないデータベース管理システムのことですが、実は 世界初の「NoSQL」は Unix シェルベースの RDBMS なのです。NoSQL は Unix 哲学に基づいており、標準入出力やパイプを使うフィルタコマンドや、SQL の JOIN や集合演算相当の機能を持ったコマンドセットとなっており、シェルスクリプトや awk や Perl で実装されており、データはすべてプレーンなテキストファイルに保存します。 それが「NoSQL: a non-SQL RDBMS」です。 注意 この記事は技術系の読み物(雑学)です。データベースの技術的な話はほとんど出てこないのであしからず。 ネタバレ この NoSQL が誕生したのは 1998 年です。そして、みんなが知ってる NoSQL という言葉が誕生したのは 2009 年です。そういうことで

                              あなたは世界初の「NoSQL」はシェルスクリプト用のRDBMSだと知っていますか? - Qiita
                            • シェルスクリプトのset -eを正しく使ってエラー処理を楽にしよう! - Qiita

                              はじめに この記事は正しく理解してないとハマりやすい set -e を正しく使う方法を解説しています。実はこの記事は前に書いた「シェルスクリプトのset -eを罠を避けて使う方法」の簡略版で前回は実際の動作を詳しく書いたのですが、内容がうまくまとまらなくて満足しておらず、私が set -e を使う時に気をつけてることを考えるともっとシンプルだよなということで新たに書き直すことにしました。普通に set -e を使うだけならこの記事の範囲の理解で十分だと思います。詳しい挙動については前回の記事を参照して下さい。 2021-12-16 「4. set -e の効果がコマンド置換に継承しないシェル対策」を追加 set -e とはなにか? この記事を読むような人は知っているかと思いますが set -e とはコマンドの実行結果がエラー(= 終了ステータスが 0 以外)になった時にシェルスクリプトを自

                                シェルスクリプトのset -eを正しく使ってエラー処理を楽にしよう! - Qiita
                              • ShellSpec - シェルスクリプト用のフル機能のBDDユニットテストフレームワーク - Qiita

                                ShellSpec はシェルスクリプト用に開発した BDD ユニットテストフレームワークです。初期版公開以降、多くの機能を追加しておりフル機能と言えるまでに成長したのですが公式サイトはほとんど更新しておらずその機能を伝えきれなくなっていたので、この度リニューアルしました。ということでその記念として日本語にセルフ翻訳しました。 ※ この記事の画像はクリックすると動画で見ることができます。 シェルスクリプトのテストを楽しみましょう! ShellSpec は フル機能の BDD ユニットテストフレームワークです。dash, bash, ksh, zsh など 全ての POSIX シェルに対応しており、コードカバレッジ、モック、並列実行、パラメータ化テストなど、高度な機能を提供しています。 クロスプラットフォームで動くシェルスクリプト及びシェルスクリプトライブラリを開発するための、開発・テストツー

                                  ShellSpec - シェルスクリプト用のフル機能のBDDユニットテストフレームワーク - Qiita
                                • シェルスクリプトで文字列の分割 (split) と結合 (join) をする時のベストプラクティス - Qiita

                                  はじめに CSV のようにカンマ区切りの文字列をそれぞれのフィールドに分割するにはどうするか?というネタです。よく見るネタなのですが、良いとは言えないコードが多いのでまとめたいと思います。 なお例として CSV を扱っていますが、主題は文字列の分割 (split) と結合 (join) なので、ダブルクォートでくくることでカンマや改行も入れられるなどという本気の CSV 対応はしません。仕様が複雑なのでそのようなファイルを扱う場合は別の言語のよく知られたライブラリを使うことをおすすめします。この記事で扱う CSV とは各フィールドがカンマで区切られているというだけのものです。 前提 一行のデータは分割して位置パラメーターに入れる 一行の文字列を分割した結果は、位置パラメータ ($1, $2, $3, ...) に代入するのがおすすめです。位置パラメータは POSIX 準拠(つまり bash

                                    シェルスクリプトで文字列の分割 (split) と結合 (join) をする時のベストプラクティス - Qiita
                                  • シェルスクリプトの表示を豊かにするgumの使い方 | DevelopersIO

                                    どうも。CX事業本部Delivery部のえーたん(@eetann092)です。 gumが面白そうだったので素振りしました。 gumのREADMEを読んで特に気になった部分を例とともに紹介します。 gumとは? gumはシェルスクリプトの表示に彩りを添えるツールです。 gumを入力や選択画面を簡単に実装したりスタイルを変更できます。 Charmには、gumの他にもいくつかのCLIツールが掲載されています。 style gum style [--オプション] "行1" "行2" "行3" ...の形式で、文字や背景、ボーダーの色などの装飾を指定して表示できます。 gum style \ --background="#FDEE0F" \ --foreground="#000904" \ --border="double" \ --border-background="#FDEE0F" \ --b

                                      シェルスクリプトの表示を豊かにするgumの使い方 | DevelopersIO
                                    • LambdaでEC2内のシェルスクリプトを実行 - Qiita

                                      はじめに 本記事の対象となる読者 特定のトリガーでLambdaを起動して、EC2内のシェルスクリプトを実行したい システム概要 上記のやりたかったことを実現するために使用したサービスは以下です。 AWS Lambda(以後Lambda) AWS System Manager(以後SSM) AWS Elastic Computer Cloud(以後EC2) 書かないこと EC2インスタンスの構築方法 Amazon Linux2を使用して、無料利用枠でインスタンスを用意します。 EC2インスタンスを作成 EC2インスタンスを作成する前に以下のポリシーをアタッチしたIAMロールを作成しておきます。仮に名前はAWSServiceSSMRoleとしておきます。 AmazonEC2RoleforSSM AmazonSSMFullAccess 上記で作成したロールをインスタンスに割り当てインスタンスを作

                                        LambdaでEC2内のシェルスクリプトを実行 - Qiita
                                      • シェルスクリプトのset -eを罠を避けて使う方法 - Qiita

                                        注意 この記事は内容に満足できなかったので新たに書き直しました。この記事の内容が間違っているわけではありませんが、まずは「シェルスクリプトのset -eを正しく使ってエラー処理を楽にしよう!」を参照して下さい。 2021-08-14 追記 この記事を書いた当時 bash の挙動を正しく理解していなかったので補足訂正します。bash はコマンド置換の中に set -e (errexit) の効果が継承されません。この動作は POSIX 非準拠です。bash 2.05.0 以上であれば set -o posix もしくは POSIX モード(sh)で起動することによって POSIX に準拠した動作となります。また bash 4.4 以上であれば shopt -s inherit_errexit でこの問題だけを個別に POSIX に準拠させることができます。本来は記事を訂正すべきですが、文章の

                                          シェルスクリプトのset -eを罠を避けて使う方法 - Qiita
                                        • 2021年10月1日号 impishのFinal BetaとTesting Week(といろいろなバグ)、シェルスクリプトをsnapパッケージにする方法 | gihyo.jp

                                          Ubuntu Weekly Topics 2021年10月1日号impishのFinal BetaとTesting Week(といろいろなバグ)、シェルスクリプトをsnapパッケージにする方法 impishのFinal BetaとTesting Week impishのbetaは無事にリリースされ、Testing Weekと呼ばれる、バグの確認のための週が終わりつつあります。 現時点ではDistUpgradeViewNonInteractiveがInteractiveに動作してしまっていたり、Electronアプリケーションが動かなかったり、特定の環境ではGDM3がクラッシュしていたり、Lubuntuのインストールボタンのキャプションが『21.04』になっていたり、Raspberry PiのデスクトップイメージではHDMI出力が行われなかったり(デスクトップが表示できないデスクトップイメー

                                            2021年10月1日号 impishのFinal BetaとTesting Week(といろいろなバグ)、シェルスクリプトをsnapパッケージにする方法 | gihyo.jp
                                          • シェルスクリプトの品質管理が楽になる! 2つの VSCode アドオンをご紹介 - RAKUS Developers Blog | ラクス エンジニアブログ

                                            はじめに こんにちは。インフラエンジニアの gumamon です! 〇aaS、コンテナ、オーケストレーション。インフラ界隈でも便利なツールが普及しつつある昨今ですが、根強く使われ続けているのがシェルスクリプトです。 シェルスクリプトの用途は 主に「シェルコマンドの自動実行(とエラーハンドリング等)」であり、インフラエンジニアとしては業務効率化のツールとして重宝する一方、事故(バグ)が発生してしまうと重大な障害につながる危険なものでもあります。 今回は、これを(初心者でも)比較的安全に書けるようになる。 ひいてはシェルスクリプトの品質管理が楽になる「2つのVSCodeのアドオン」を紹介します。 VSCode = Visual Studio Code、Microsoft製のソースコードエディタです。 インフラエンジニアの場合「vimで書くし」という方も多いと思うのですが、慣れてしまうと超便利で

                                              シェルスクリプトの品質管理が楽になる! 2つの VSCode アドオンをご紹介 - RAKUS Developers Blog | ラクス エンジニアブログ
                                            • シェルスクリプトの互換性と生産性の問題を解決する高度なプログラミング技術 〜1万行のコードをメンテしつづけるのに必要なもの〜 - Qiita

                                              はじめに macOS で開発したシェルスクリプトが本番環境の Linux で動かなかったという経験はないでしょうか?シリーズの第一弾で POSIX の問題点について解説しましたが根本的な問題は POSIX コマンドに互換性がないからです。この問題は GNU Coreutils をインストールすることで解決することができますが、環境によっては必ずしもインストールできるとは限りません。そういう場合は自分の手で互換性問題を解決する必要があります。また他の人が書いたシェルスクリプトがメンテナンスできなくて困ったことはないでしょうか?それはある程度の大きさにも関わらずメンテナンス性を考慮した書き方をしていないからです。ソフトウェアは規模に応じた適切な書き方があります。ある程度の大きさのシェルスクリプトを使い捨てシェルスクリプトの書き方(ワンライナー多用で関数を使わないような書き方)の延長で書かないよ

                                                シェルスクリプトの互換性と生産性の問題を解決する高度なプログラミング技術 〜1万行のコードをメンテしつづけるのに必要なもの〜 - Qiita
                                              • シェルスクリプトのテストを書こう! - Mobile Factory Tech Blog

                                                駅メモチームでエンジニアをしている id:Eadaeda です。シバンは #!/usr/bin/envを使う派です。 皆さんはシェルスクリプト書いてますか? 環境構築、開発、テスト、ビルド、デプロイなどなど、一連の作業を自動化するための手段として時々出番があるんじゃないでしょうか。 ところでそのシェルスクリプト、テスト書いてますか? シェルスクリプトのテスト 「シェルスクリプトのテスト〜?」って感じですよね。殆どの場合、一度書いてしまえばあんまり壊れることはないし別に…って感じですよね。わかります。実際開発環境のためにdocker compose upするだけのスクリプトなら雑でもいいですよね。 でも、重要な役割をもつスクリプトならどうでしょう。例えばアプリケーションのエントリーポイントや、リリースビルド・デプロイのためのスクリプトなどが思いつきます。 こういうのはテストである程度保証され

                                                  シェルスクリプトのテストを書こう! - Mobile Factory Tech Blog
                                                • bashシェルスクリプトの実行方法・実行環境

                                                  Linuxでは、スクリプト言語によるプログラミング機能が備わっており、これを「シェルスクリプト」といいます。 シェルスクリプトを使うことにより、条件分岐や繰り返しといった制御構文などを組み合わせ、より柔軟なコマンド処理を行うことができるようになります。また、一連のコマンド操作をスクリプトファイルにあらかじめ記述しておくことにより、サーバー管理作業の自動化も可能となります。 当記事では、bashシェルスクリプトの様々な実行方法と実行環境の違いについて解説していきます。 シェルスクリプトは、一般的なテキストファイルとして記述していきます。 そのため、viなどのテキストエディターで作成することができます。スクリプトの内容が記述できたらファイルとして保存しますが、シェルスクリプトファイルであることを明示するためにファイル名の後ろに「.sh」をつけるのが一般的です。 例えば、「Hello World

                                                    bashシェルスクリプトの実行方法・実行環境
                                                  • シェルスクリプトに出てくる「2>&1」ってなんですか?【エラーログの保存に使えます】 - Wet系バイオインフォマティシャンの災難

                                                    シェルスクリプトを書くために勉強をしていると 時々行末に「2>&1」という記号を見かけると思います。 プログラミング初心者には意味不明なこの呪文について解説をしたいと思います。 この呪文はファイルディスクリプタと呼ばれる番号"1, 2"と リダイレクト">"から成り立っているのでこの2つについてをまず解説します。 コマンドによる出力には”標準出力”と”標準エラー出力”の2種類がある コマンドechoを例に説明します。 まず、echoで”Hello”と表示させてみましょう。 $echo "Hello" Hello "Hello"と問題なく出力されます。 これが標準出力です。 次に存在しないコマンドaaaを行ってみると $aaa "Hello" -bash: aaa: command not found "aaaというコマンドはありません"というエラーメッセージが出ます。 これが標準エラー出力

                                                      シェルスクリプトに出てくる「2>&1」ってなんですか?【エラーログの保存に使えます】 - Wet系バイオインフォマティシャンの災難
                                                    • bashシェルスクリプトの記述の仕方に関するメモ書き - Qiita

                                                      はじめに bashシェルスクリプトの記述の仕方に関するメモ書きです。 ファイル入出力やパイプライン処理を中心に シェルが得意なのはファイル入出力やパイプライン処理なので、複雑な構文はできるだけ使わず、これらの使用を中心としたコードを書きます。 PATH コマンドごとにフルパスを変数に格納するなどは手間なので、必要な環境変数$PATHをexportしておきます。 それでも必要な場合はフルパスを変数に格納しておきます。 標準出力、標準エラー出力のリダイレクト 標準出力(1)、標準エラー出力(2)はデフォルトは画面になっています。 それ以外にエラーメッセージを定義する場合、標準エラー出力(2)にリダイレクトします。

                                                        bashシェルスクリプトの記述の仕方に関するメモ書き - Qiita
                                                      • シェルスクリプトとLinuxコマンド連載を初めます | フューチャー技術ブログ

                                                        はじめにこんにちは、TIG真野です。 タイトル通り、シェルスクリプトとLinuxコマンドをテーマにした連載を初めます。 シェルスクリプトとLinuxコマンド連載の指す範囲 シェルスクリプトとは、オペレーティングシステムのシェルまたはコマンドラインインタプリタ向けに書かれたスクリプト言語です。詳しくはhttps://ja.wikipedia.org/wiki/シェルスクリプトなどを参考ください。 シェルとは、CLI(Command Line Interface)で利用するためのソフトウェアです。シェル上でlsやcdなどのコマンドを通してOSを操作することができます。シェルにはBash(Bourne-Again Shell)やzsh, kshなどさまざまな種類があります。こちらも詳しくはhttps://ja.wikipedia.org/wiki/シェルなどを参考ください。 今回のブログ連載はは

                                                          シェルスクリプトとLinuxコマンド連載を初めます | フューチャー技術ブログ
                                                        • [小ネタ] 続・シェルスクリプトで日付 ⇔ UNIXTIME 相互変換の計算がしたい(BSD date, Ruby, jq) | DevelopersIO

                                                          [小ネタ] 続・シェルスクリプトで日付 ⇔ UNIXTIME 相互変換の計算がしたい(BSD date, Ruby, jq) 3年ほど前に書いたやり方のアップデートです。シェルスクリプトの中で、日付の計算をしたりタイムスタンプを出力したりという需要は現在でもそこそこある(著者調べ)ということで、今回は BSD date(macOS標準の date コマンド)と Ruby、 jq について紹介します 以前、こんな記事を書きました。 このときはこれで解決したのですが、3年ほど経ってまた同じ需要が出てきました。 そこで「もう少し楽な方法ないかな?」と調べてみたら普通に見つかったので、備忘録がてらご紹介します。 シェルスクリプトで日付の計算がしたい (BSD date) 前回のブログで「macOS標準のdateコマンド(BSD date)ではできないので〜〜」とか書いていたんですができました。 ぼ

                                                            [小ネタ] 続・シェルスクリプトで日付 ⇔ UNIXTIME 相互変換の計算がしたい(BSD date, Ruby, jq) | DevelopersIO
                                                          • VSCode 上でシェルスクリプトのまずい書き方を検出してみよう (with ShellCheck on Docker)

                                                            UNIX/Linux での作業の効率化に欠かせないシェルスクリプトですが、手軽に書ける反面、様々な罠があることでも知られています。 そんな罠にはまらないよう、シェルスクリプトの解析ツール「ShellCheck」を使ってチェックしましょう、というお話です。 ShellCheck とは? 静的解析によりシェルスクリプトの問題点を分析し、より良い書き方を提案してくれる CLI の Linter ツールです。 構文の問題点やバグだけでなく、推奨されない書き方も教えてくれます。 シェルスクリプトの初心者・上級者に関わらず、入れておくだけで安心してスクリプトを書けるようになります。 ShellCheck がチェックしてくれること ShellCheck がチェックしてくれる内容は とても多岐に渡ります。例えば… クォーティング処理に関する指摘: ダブルクォーテーションで囲わずに変数展開している場合など。

                                                              VSCode 上でシェルスクリプトのまずい書き方を検出してみよう (with ShellCheck on Docker)
                                                            • シェルスクリプトの関数で「戻り値」を返す方法、全部まとめ(bash/zshの新機能 関数置換・値置換の使用例) - Qiita

                                                              シェルスクリプトの関数で「戻り値」を返す方法、全部まとめ(bash/zshの新機能 関数置換・値置換の使用例)ShellScriptBashZshkshmksh はじめに シェルスクリプトのシェル関数の return コマンドは他の言語のような戻り値を返すものではありません。return コマンドで返すものは終了ステータス、つまり 0 から 255 までの数値です。しかし現実には終了ステータス以外の値を返したいというのはよくあります。この記事ではシェル関数から「他の言語でいう戻り値を返す」に相当する方法をすべてまとめました。または次期 bash 5.3/zsh 5.10 で追加される予定の「関数置換 (funsub)」と「値置換 (valsub)」の機能の紹介です。 この記事では現時点で開発中の bash 5.3 と zsh 5.10 に追加される予定の「関数置換」と「値置換」の話を扱って

                                                                シェルスクリプトの関数で「戻り値」を返す方法、全部まとめ(bash/zshの新機能 関数置換・値置換の使用例) - Qiita
                                                              • SoftwareDesign on Twitter: "CPUのしくみを勉強して、それからアセンブラ、C、へと抽象化をすすめて、OS、シェルスクリプト、ライブラリ、通信まわり、オブジェクト指向系のプログラミング言語、Web系のプログラミング言語、と下から積み上げていったほうがいいかなと。おおざっぱですが。 #入門書"

                                                                CPUのしくみを勉強して、それからアセンブラ、C、へと抽象化をすすめて、OS、シェルスクリプト、ライブラリ、通信まわり、オブジェクト指向系のプログラミング言語、Web系のプログラミング言語、と下から積み上げていったほうがいいかなと。おおざっぱですが。 #入門書

                                                                  SoftwareDesign on Twitter: "CPUのしくみを勉強して、それからアセンブラ、C、へと抽象化をすすめて、OS、シェルスクリプト、ライブラリ、通信まわり、オブジェクト指向系のプログラミング言語、Web系のプログラミング言語、と下から積み上げていったほうがいいかなと。おおざっぱですが。 #入門書"
                                                                • envsubstの本来の使い方はシェルスクリプト用のテンプレートエンジンではない - Qiita

                                                                  はじめに envsubst コマンドはシェルスクリプトから使える簡易的なテンプレートエンジンとしてしばしば紹介されていますが、なぜこのような仕様になっているんだ?と疑問になるような仕様の機能を持っています。その理由は envsubst コマンドが本来 gettext.sh による国際化機能(翻訳処理)に伴う変数展開を安全に行うために作られたコマンドだからです。それを知らずに envsubst だけを見ていても使い方や仕様の意味はよくわからないでしょう。この記事では envsubst コマンドの奇妙な仕様はどのように使うもので、なぜこのような仕様になったのかについて説明します。 envsubt コマンドの使い方 基本機能(変数の展開) envsubt コマンドは簡易的なテンプレートエンジンのような機能を持っており、指定されたテンプレートに対して環境変数の値を埋め込むという処理を行います。よく

                                                                    envsubstの本来の使い方はシェルスクリプト用のテンプレートエンジンではない - Qiita
                                                                  • シェルスクリプト内のエラーで実行を停止する「-e」と、実行コマンドを出力する「-x」オプションを使ったシェルスクリプトの開発 - このすみノート

                                                                    「ソフトウェアデザイン2020年1月号」を読んでいるのですが、その中に次の一節がありました。 GitLab のCI に関する部分は.gitlab-ci.yml に書き、単独でも実行できる内容はシェルにまとめて、scriptで呼び出すのがお勧めです。 そうすると、.gitlab-ci.ymlに必要な事項だけがまとまって見やすくなるはずです。 しかし、シェルスクリプトにまとめてしまうと実行経過が見えなくなったりするので、シェルスクリプト内で実行過程を標準出力に出力するか、シェルスクリプトのshebang注C に「set -x」または 「set -xe」を付けることをお勧めします。 ソフトウェアデザイン 2020年1月号 より GitLab特集の記事ですが、CI上で実行するシェルスクリプトには、「set -x」または「set -xe」を付けようという内容です。 なぜ「set -x」または「set

                                                                      シェルスクリプト内のエラーで実行を停止する「-e」と、実行コマンドを出力する「-x」オプションを使ったシェルスクリプトの開発 - このすみノート
                                                                    • 私がシェルスクリプトで"プログラミング"をする理由 - Qiita

                                                                      この記事は@piroor さんのコメントに対する私の返信を冗長にポエム化した記事です。私が公開した「シェルスクリプト リファクタリング ~遅いシェルスクリプトが供養されてたので蘇生して256倍に高速化させました~」という記事についての話をしています。 私はシェルスクリプトで"プログラミング"を行っています。私の記事の特に第二章で使っているテクニックはシェルスクリプトとしては異端かもしれませんが、私がリリースしているツール(ShellSpec, getoptions, shdotenv 等)を開発するにあたっての十分な期間と量の検証と実証からの結論であり、そのテクニックが有効であると確信しています。しかし知名度としては「プログラマーの君! 騙されるな! シェルスクリプトはそう書いちゃ駄目だ!! という話」の記事には及ばないため、そのテクニックが理解されず、ましてや間違った変なやり方としてなん

                                                                        私がシェルスクリプトで"プログラミング"をする理由 - Qiita
                                                                      • シェルスクリプトの正しい実行方法は一つだけ! ~ sh や source で実行するのが良くない理由とシバンの話 - Qiita

                                                                        シェルスクリプトの正しい実行方法は一つだけ! ~ sh や source で実行するのが良くない理由とシバンの話ShellScriptBashLinuxUNIXshell はじめに なぜ「シェルスクリプトの実行方法は○つある」とか、ややこしい説明をするのだろうと不思議です。複数の手段を提示するのは初学者を混乱させるだけです。シェルスクリプトの推奨の実行方法はたった一つです。その他の方法には問題があるのだから(最初に)いくつも教える必要はないでしょう? 特に source を使って一般的なシェルスクリプトを実行してはいけません。全く使わないわけではありませんが同列に並べるようなものではありません。 推奨されるシェルスクリプトの実行方法は一つだけ シェルスクリプトは・・・というか、これはシェルスクリプトだけに限りません。どの言語で作ったプログラムでも同じですが、Unix / Linux でプロ

                                                                          シェルスクリプトの正しい実行方法は一つだけ! ~ sh や source で実行するのが良くない理由とシバンの話 - Qiita
                                                                        • シェルスクリプトの if は3分で簡単にマスターできる - Qiita

                                                                          はじめに シェルスクリプトの if コマンドの使い方は覚えるのがとても簡単です。 if の一番単純な構文 if の一番単純な書き方(elif や else がない場合)は次のとおりです。 fi は if を逆に並べたものです。この文法の発想は歴史をたどると C 言語を含む多くの言語に影響を与えた ALGOL から来ており、Bourne シェルの開発者が ALGOL 68 コンパイラの開発に関わっていた影響です。Bourne シェルとは ash や bash や zsh の祖先のシェルで、今はほとんど使われることのない古いシェルの名前です(2025年1月1日でサポート終了する Solaris 10 を除く)。昔は sh = Bourne シェルという時代がありましたが、今は sh = さまざまな POSIX シェルのどれかです。POSIX シェルとは POSIX で標準化されているシェルの仕

                                                                            シェルスクリプトの if は3分で簡単にマスターできる - Qiita
                                                                          • LinuxでWindows10のインストールUSBを作るシェルスクリプトを作った | FreeBSD Days

                                                                            使い方 Windows10のインストールUSBを作る記事のコマンドをシェルスクリプトにまとめました。以下のコードを適当なファイル(mkwin10usb.shとか)に保存し、chmod +x で実行権限を付与した上で、管理者権限で実行します。引数なしで実行すると使い方が表示されます。第一引数にWindows10のインストールISOのパスを、第二引数にUSBのブロックデバイス(/dev/sdbとか)を指定します。第二引数で指定したUSBメモリのデータは完全に削除されるので気をつけてください。また、パーティション操作時にキー入力が必要ですので、数回入力してください。 コード本体 #!/bin/bash # execute command with prompt function run() { echo -e "\033[30;1m# $@\033[0m" $@ } # confirm the

                                                                            • バッチファイルからBashシェルスクリプトを実行する方法 - Engineer's Notebook

                                                                              Cygwin + Bashシェルスクリプトってほんとに便利! 最近は WSL が流行りですが、まだまだCygwinの出番も多いですよね。 そんな便利なBashシェルスクリプトですが、Batファイルと違ってエクスプローラーから直接実行できないのが難点です。 そんなときはBashシェルスクリプトを起動するBatファイルを作ってみましょう。 ここからの解説はCygwinを前提にしていますので、あらかじめCygwinをインストールしておいてください。 バッチファイルからBashシェルスクリプトを実行する方法 bash.exeにコマンド(シェルスクリプト)を渡すことでバッチファイルからBashシェルスクリプトを実行することができます。 @SETLOCAL @SET PATH="C:\cygwin64\bin";%PATH% @SET CHERE_INVOKING=yes @SET LANG=ja_J

                                                                                バッチファイルからBashシェルスクリプトを実行する方法 - Engineer's Notebook
                                                                              • 最終行に改行がないテキストファイルをシェルスクリプトで上手く扱う方法 - Qiita

                                                                                はじめに 一般的にファイルの最終行に改行がないデータを扱うのは良い考えとは言えません(よくない理由は別記事で書きます)。しかしそれでも扱いたい場合もあります。この記事ではその方法をまとめました。 この記事は シェルスクリプト&PowerShell Advent Calendar 2023 2日目の記事です。 ファイルの末尾に改行が必要なのは「POSIXの仕様」だとする説がありますが、これは間違いで POSIX は標準規格で使用している「テキストファイル」の用語を定義しているだけです。 POSIX では「テキストファイル」という用語を、0行以上の行で構成されたファイルと定義しており、行とはヌル文字がを含まず末尾に改行がある LINE_MAX バイト(一般的に2048バイト)以内の文字列のことです。 詳細は以下を参照してください。 「POSIXがファイルの末尾に改行が必要と決めた」はガセネタ

                                                                                  最終行に改行がないテキストファイルをシェルスクリプトで上手く扱う方法 - Qiita
                                                                                • 型安全なシェルスクリプトを書けるプログラミング言語Amberを使ってみた

                                                                                  シェルスクリプトを型安全に書きたいと考える人もいると思います。 そういった人におすすめのRust製プログラミング言語Amberを使ってみたので簡単に紹介します。 Write your scripts in a modern type-safe and runtime-safe programming language that handles many bugs and mistakes during compilation process. GitHub Star Historyによると最近一気にGitHubのスター数を獲得したようです。 この記事の内容は現時点(2024/05/19)の以下の公式ドキュメントをベースに、追加でソースコードを調べて試した結果を基に書いています。 Discordで活発に議論が行われており、READMEや公式ドキュメントも頻繁に更新されているようなので、この記

                                                                                    型安全なシェルスクリプトを書けるプログラミング言語Amberを使ってみた