タグ シェルスクリプト
人気順 10 users 50 users 100 users 500 users 1000 usersShellScriptで自動化を楽にしたい時に知っておいても良いこと | sreake.com | 株式会社スリーシェイク
はじめに こんにちは、皆さん。今日は、シェルスクリプトを使った高度な自動化のベストプラクティスとパターンについて解説します。これらは、ちょっとした知識で実行でき、作業を大幅に効率化できるTipsです。シェルスクリプトは、特にUNIX系システムでの自動化タスクに欠かせないツールです。適切に使用すれば、複雑な... 続きを読む
ChatGPTにgitのリポジトリ渡すと全ソースコード.txtをダウンロードさせてくれるやつ〜〜〜〜(AIに食わせるコード一覧が欲しい時用)
クレデンシャル含むソースコードをChatGPT等のクラウドLLMサービスにアップロードしないでください。 今回のプロンプトはオープンなリポジトリのみを対象としており、シェルスクリプトが実行される環境もChatGPT側のクラウド上のサンドボックス内のみを想定しています。 ローカル環境では以下のシェルスクリプトをそのま... 続きを読む
Bashで$(cat foo.txt)していませんか?$(< foo.txt)しよう - Lambdaカクテル
以下の文書はBashを使う前提の話。 Bashにはコマンド置換(Command substitution)というのがある。$(another-command)のように、$()でコマンドを括る記法だ。これを利用すると、括弧で括られたコマンドが実行され、その標準出力が文字列として取り出され、$()全体を置き換える。シェルスクリプトでは非常によく見る技術だ... 続きを読む
シェルスクリプトをJavaScript/TypeScriptで記述、どのOSでも実行できる「Bun Shell」、JavaScriptランタイムのBunが発表
JavaScriptランタイムのBunは、新機能としてシェルスクリプトをJavaScriptもしくはTypeScriptで記述し、特定のOSに依存せずに実行できる「Bun Shell」を発表しました。 シェルスクリプトは特定のシェルに依存するもの LinuxやmaOS、Windowsなどは、OSの一部として「シェル」と呼ばれる機能を備えています。 シェルはコマ... 続きを読む
Bun でクロスプラットフォームなシェルスクリプト
Bun でクロスプラットフォームなシェルスクリプト 2024.01.20 Bun の `$` を使うと、クロスプラットフォームなシェルスクリプト(Bun Shell)を書くことができます。Bun Shell は macOS (zsh)、Linux (bash)、および Windows (cmd) と OS の違いを気にせずにシェルスクリプトを書ける、JavaScript オブジェクトとのやり... 続きを読む
シェルとUNIXコマンドの未来 ~ これからの10年で起きるシェルスクリプトの変化 - Qiita
はじめに シェルスクリプトの世界は今後 10 年で大きく変化します。10 年という数字は切りが良い数字を持ってきただけで根拠はありません。これより長い時間がかかるかもしれませんし、もしかしたら短くなるかもしれません。しかし確実によりよい方向に変わっていくでしょう。Unix/Linux の標準コマンドはさまざまな問題... 続きを読む
bashの機能いろいろ
シェルスクリプトを書いていると「それはbash独自機能だから」「POSIXシェルには無い機能だから」と言われることがよくあります。だいたいは「それみんな使ってるのでPOSIXで標準化されてると思った」といったものなのですが、本記事では便利なものから「え、それやるくらいならPythonでよくない?」まで、bashの機能を紹... 続きを読む
【POSIX準拠】set -o pipefailを使おう!ただしdash、テメーはダメだ - Qiita
はじめに set -o pipefail は POSIX で標準化されているシェルオプションです。シェルスクリプトでは基本的に使うようにしましょう。 え?「set -o pipefail」はbash拡張だろ!? それはもはや古い常識です。POSIX.1-202x (Issue 8) (来年には完成するはず・・・)で set -o pipefail は標準化されました。対応している... 続きを読む
シェルスクリプトとの対比で理解するPythonのsubprocess - 朝日ネット 技術者ブログ
はじめに 開発部の ikasat です。 皆さんは git, ssh, rsync のような外部コマンドを呼び出すスクリプトを書きたくなったことはありますか? 個人的にこの類のスクリプトは最初はシェルスクリプトとして書くのですが、改修を重ねるうちに肥大化して処理も複雑になり、 後から Python のような汎用プログラミング言語で書... 続きを読む
シェルスクリプトで日付処理ならdateコマンドは投げ捨ててDateutilsを使おう! - Qiita
この中で私が特に気に入ったコマンドは dateround です。次点は dategrep です。この二つは特に強力で、awk やその他のコマンドを使って日時をこねくり回すような「無駄に難解なコード」を書かずに Dateutils のコマンド群だけで大抵のことはなんでもできてしまいます。専用のことをするには専用のコマンドを作ることが... 続きを読む
シェルスクリプトでスクリプトの引数をループする方法
B! 0 0 0 0 0 今更ながら知ったこと。 通常の方法 in無し The for Loop (POSIX Shell Command Language) ;の省略 man bash その他の方法 参考 通常の方法 bashとかでよくやる方法は arg1.sh 1 2 3 4 5 #!/usr/bin/env bash for arg in "[email protected]";do echo "$arg" done とする方法。 "[email protected]"はスク... 続きを読む
『マスタリングLinuxシェルスクリプト 第2版』、こういう1冊手元に有るとずっと使える本はちゃんと買っておきたいですね - Magnolia Tech
マスタリングLinuxシェルスクリプト 第2版 ―Linuxコマンド、bashスクリプト、シェルプログラミング実践入門 作者:Mokhtar Ebrahim,Andrew MallettオライリージャパンAmazon 令和最新版のシェルスクリプトの入門書とリファレンスがセットになった1冊。手元に置いておくと安心感ありますよね。 令和最新版なので、冒頭から... 続きを読む
lambrollでシェルスクリプトをLambdaにデプロイして実行する
lambrollでシェルスクリプトをLambdaにデプロイして実行する投稿者: inamuu 投稿日: 2023年1月19日2023年1月19日 概要 仕事をしていると、歴史のあるシェルスクリプトがEC2で動いていたりすることがある。 そういったスクリプトをなにかしらのスクリプト言語で書き換えるのもやぶさかではないのだが、数が多いと諦めの気... 続きを読む
シェルスクリプトでlsをパイプでつなぐのはなぜ悪いのか ~ ShellCheck: SC2010, SC2011, SC2012 とファイル名改行問題 - Qiita
シェルスクリプトでlsをパイプでつなぐのはなぜ悪いのか ~ ShellCheck: SC2010, SC2011, SC2012 とファイル名改行問題 はじめに シェルスクリプトで ls コマンドの出力結果(ファイル名一覧)をパイプで他のコマンドに渡して処理するのは推奨されません。ls コマンドを使ったコードを ShellCheck で検査するとおそらく... 続きを読む
シェルスクリプトの $* と $@ の違いと雑学色々 - Qiita
まず位置パラメータを含め変数を参照する時にダブルクォートしないのは無しです。理由は予期せぬ変数展開やパス名展開が行われるからです。詳細は「シェルスクリプトの変数はダブルクォートしなければいけない!という話」を参照してください。この理由により上半分は「使いません」で終わりです。 ダブルクォートはほぼ... 続きを読む
シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita
はじめに bash などのシェルには [ ... ] と [[ ... ]] の二種類の比較方法があります。一つはコマンド、もう一つはシェルの文法なのですが、具体的にはこの二つは一体何が違うのでしょうか? そもそもなぜ似ている機能が二つもあるのでしょうか? この記事は言語設計者の気持ちになって考えることで、その理由を解き明... 続きを読む
詳細解説 jqコマンドとシェルスクリプトの簡単で正しい使い方 〜 データの流れを制するUNIX哲学流シェルプログラミング - Qiita
はじめに シェルスクリプトから JSON データを処理する時に良く使われるのが jq コマンドです。しかしほとんどの人は jq コマンドとシェルスクリプトのつなぎ方を間違えています。jq コマンドの使い方が間違っているというより、シェルスクリプトの設計思想や考え方を正しく理解していないために、間違ったつなぎ方をし... 続きを読む
今どきのシェルスクリプトは数値計算にexprを使わない(POSIX準拠) - Qiita
はじめに 1992 年に POSIX でシェルが標準化されて以来、シェルスクリプトの数値計算に expr コマンドは使いません。expr コマンドを使って計算していたのは Bourne シェル(古い UNIX の sh)時代の話で、現在の POSIX sh (dash、bash 等)時代では数値計算に expr コマンドは不要です。今どきはシェルの機能だけで整... 続きを読む
シェルスクリプトで安全簡単な二重起動防止・排他/共有ロックの徹底解説 - Qiita
はじめに シェルスクリプトで二重起動防止やロックをする方法を検索すると、いろいろな方法や書き方が見つかりますが、どれを使えばよいのか、本当に正しく動くのか、不安になりますよね? ディレクトリ (mkdir) やシンボリックリンク (ln) を使った独自実装の例も見かけますが、エラー発生時や予期せぬ電源断、CTRL+C ... 続きを読む
systemd serviceから呼ぶシェルではsudoではなくsetprivを使う - 赤帽エンジニアブログ
Red Hatの森若です。 自分でsystemdのservice unitを作るときに、起動用のいくつかのコマンドを記述したシェルスクリプトを呼ぶ事は(理想的ではないですが)あるかと思います。 今回はこの場合に、sudoを利用するとまずい理由を説明して、かわりにsetprivを使うほうがよいという話です。 例題用のservice 実行してみる 別... 続きを読む
ルーチンワークはPythonにやらせよう Seleniumで勤怠処理を自動化する - Qiita
勤怠処理の自動化は、以下の仕組みによって実現しています。 在宅勤務と出社では勤怠処理が異なるため、基本的にフルリモート前提で在宅勤務の場合に処理を行うよう設定しています。 cronによってシェルスクリプトを起動 シェルスクリプトで在宅勤務の判定を行う 在宅勤務の場合、Pythonのプログラムを起動 Seleniumで勤... 続きを読む
名著「入門UNIXシェルプログラミング」の超詳細なレビューをしてみた(古い内容の訂正) - Qiita
はじめに そりゃまあ 30 年も経てば古くなりますよ。「入門UNIXシェルプログラミング」は今もシェルスクリプトに関するオススメの本として名前が挙がる名著です。しかしこの本は古い本です。POSIX でシェルが標準化される以前の本で、内容から判断するとおそらく 1990 年ぐらいの常識に基づいて書かれています。 古いか... 続きを読む
なぜ今シェルスクリプトを学ぶのか・シェルスクリプトのTips - 理系学生日記
会社の中でシェルスクリプトについての話をすることにしたので、このエントリはそのためのものです。 個人的な好みとかもいろいろ入ってしまっているので、そのあたりは取捨選択してください。 なぜ今シェルスクリプトを学ぶのか 公開されているSRE本をマルっとPDF化する SpotBugsのViolationレポートをMerge Requestの... 続きを読む
なぜシェルスクリプトで高度なデータ管理にSQLiteを使うべきなのか? ~ UNIX/POSIXコマンドの欠点をSQLで解決する
「利用者は数十億人!? SQLiteはどこが凄いデータベース管理システムなのか調べてみた」の続きです。 はじめに 複雑な構造のデータを扱うのであればシェルスクリプトや Unix (POSIX) コマンドでデータ管理を行うのは避けるべきだと思います。解決不可能な問題が多いからです。しかしそれでも何かしらの理由でやろうと考... 続きを読む
実行中のシェルスクリプトをchattr(1)を使ってimmutableにするというのはどうか - その手の平は尻もつかめるさ
実行中のbashシェルスクリプトを上書きするとシェルスクリプトが実行中に再読み込みされ、意図しない挙動をするという現象が昨年末に話題になりました。 bash は、シェルスクリプトの実行中に適時シェルスクリプトを読み込みます。この挙動による副作用を認識できておらず、実行中のスクリプトが存在している状態でスク... 続きを読む