並び順

ブックマーク数

期間指定

  • から
  • まで

121 - 146 件 / 146件

新着順 人気順

ShellScriptの検索結果121 - 146 件 / 146件

  • Linuxシェルスクリプト - Linux特殊記号の完全リスト - BinaryDevelop

    Linuxの特殊記号の完全なリスト シェルでよく使われる特殊記号の一覧は以下のとおりです。 # ; ;; .      , / '文字列'| !   $ ${} $?      $$ $* "string"* ** ? ^ $# $@ `command`{}. [] [[]] () (()) ||| && {xx,yy,zz,...}のようなものです。~ ~+ ~- & \<... \♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪~ = # Well番号(コメント) これは、すでに前述した"first line"を除いて、ほぼ全フィールドに存在する記号である。 #! /bin/bash また、ウェル記号は行頭やコマンド全体の後によく現れますが、これは記号の後に実行されないコメント文が続くことを示します。 # この行はコメントです。 echo "a = $a" # a = 0

    • UNIXシェルスクリプトメモ(Hishidama's UNIX shell script Memo)

      -xを付けると実行内容を表示しながら実行する。[2008-11-29] bash -x スクリプトファイル -nを付けると、実行せずにファイル内の構文解析(エラーの有無のチェック)を行う。[2008-11-29] bash -n スクリプトファイル . スクリプトファイル 現在実行中のシェルと同じシェルを使ってスクリプトを実行する。 スクリプトの中で環境変数を設定した場合、現在のシェルの環境にも影響する (スクリプトの中で定義した環境変数が実行元でも有効になる)。 ファイルに実行権限(chmod +x)が付いている場合は、以下のようにして実行できる(相対パスで指定している)。 ./スクリプトファイル ファイルに実行権限(chmod +x)が付いており、かつ環境変数PATHにカレントディレクトリ「.」が含まれている場合は、以下のようにして実行できる。 スクリプトファイル シェルスクリプトの書

      • 【Linux】ワイルドカードを変数に代入する方法 - echo("備忘録");

        おととい(2018/01/22)は全国的に大雪で、東京や関東で、ものすごい数の人が駅で立ち往生を食らっている、という映像をニュースやSNSで見ました。 幸い、愛知県平野部は雪の影響はなかったですが、あの人だかりを見ると、やはり東京(というか関東)は僕にとって「(リモート等で)仕事する場所」ではあっても、「住む場所」ではないな、と改めて感じました。 で、本題 例えば、下記のような内容のテキストファイルから「ファイルパス&ファイル名を1行ずつ読み込んで、何か処理する」とします。 /mnt/c/users/makky12/,sample.txt /mnt/c/users/makky12/,* ... で、これを while read line; do ##${line}は「ファイル一行の内容」。 declare -a array array=(`echo ${line} | tr ',' ' '

          【Linux】ワイルドカードを変数に代入する方法 - echo("備忘録");
        • シェルスクリプト リファクタリング ~遅いシェルスクリプトが供養されてたので蘇生して256倍に高速化させました~ - Qiita

          はじめに ことの始まりは「シェルスクリプトでツールを作ったけど速度が遅くて使い物にならなかったので供養」というツイートを見たからです。コードを見てみると、実例をあまり見ないシェルスクリプトのリファクタリング例として丁度良い内容と分量だったため記事にいたしました。記事を書くにあたりコードの利用を快く承諾していただいた @Hayao0819 様にはこの場を借りて御礼を申し上げます。 内容は章立てで構成しており、序章で事前調査をし、第一章で一般的なリファクタリング、第二章でパフォーマンスを重視したリファクタリング、終章で少し余談をして締めくくっています。最初はパイプは並列処理されるから速くなるというのは神話(そうとは限らない)についても書いていたのですが流石に長いので分けました。それでも書きたいことを色々書いていたらめちゃくちゃ長くなってしまいましたので読み物として私がどんなことを考えながらリフ

            シェルスクリプト リファクタリング ~遅いシェルスクリプトが供養されてたので蘇生して256倍に高速化させました~ - Qiita
          • シェルスクリプトで自作関数にパイプの結果を渡す

            my_func () { argument=$(パイプで受け取る) echo "my_func: $argument" } echo "hoge" | my_func # my_func: hoge my_func () { if [ -p /dev/stdin ]; then echo "*** From pipe ***" argument=$(cat /dev/stdin) # alternative: $(cat -) else echo "*** NOT from pipe ***" argument=$1 fi echo "my_func: $argument" } echo "hoge" | my_func # my_func: hoge [ -p /dev/stdin ]の中の-pは対象がパイプファイルであれば真となる。 catに-を与えると標準入力から読み込みを行う。ca

            • 回る長い猫のシェル芸 - Qiita

              回る長い猫のシェル芸とは? このgifアニメーションを生成するシェル芸です。 コマンド 以下のコマンドで生成することができます。 $ eval "convert -delay 10 <(longcat -n 10 -o /dev/stdout) -flatten -scale 150x600! -rotate -90 -write mpr:a +delete `for i in {30..600..30};do echo -n "\( mpr:a -roll -$i+0 -wave 20x120 -distort arc 360 \) ";done`/images/x.gif"

                回る長い猫のシェル芸 - Qiita
              • シェルスクリプトの変数はダブルクォートしなければいけない!という話 - Qiita

                TL; DR 変数をダブルクォートしない使い方は上級者向けの危険な機能です! $@ と $*(または配列の全要素)をダブルクォートしない使い方は知る必要すらありません! ShellCheck を導入すれば誰でも簡単に正しい書き方がわかります!! 2021-08-21 補足 この記事は dash や bash などの POSIX シェルの一般的な動作を解説しており zsh のデフォルトとは異なります。記事の中でも説明していますが zsh の場合はシェルのオプションを変更することで POSIX 準拠の動作に変更することができます。zsh に関しては後半の「zsh に関する注意点」も参照してください。 はじめに プログラミング言語は、言語によって記号の意味が異なることがよくあります。クォーテーションマークはその一つです。C 言語ではシングルクォートは文字リテラル(一文字)を意味し文字列はダブルク

                  シェルスクリプトの変数はダブルクォートしなければいけない!という話 - Qiita
                • シェルのデバッグ(csh、tcsh系) – Cool Japan

                  対象:csh、tcsh シェル(csh、tcsh系)のデバッグは alias を利用する シェルにはデバッガーがあるわけではないので、デバッグにはちょっとコツがいります。-x オプションを指定して、実行ラインを標準エラーに出しながら行うことも可能ですが、本来のスクリプトの出力とごっちゃになってわけがわからなくなる場合もあります。簡単なスクリプトなら、それでも大丈夫でしょうが。 私の場合、デバッグプリントと言う古典的な手法を用いますが、echo や printf でただ単に出力させると、デバッグ完了後の本番時には、その echo 文などを削除するかコメントアウトする必要があり、それもまた手間がかかります。 そこで、echo や printf の代わりにデバッグ専用の Decho、Dprintf を別名定義や関数化してスクリプトに埋め込み使っています。まずは、サンプルコードを見てください。 c

                  • シェルでDBからデータを取得する - juve534のブログ

                    概要 普段はPHPを使って、DBからデータを取得しています。 通常はそれで問題ないですが、PHPだとサーバに入れる必要があります。 ちょっとしたデータを取る際に、いちいちサーバにPHPを入れるのが面倒だと感じました。 そこで、PHPを入れないでもDBからデータを取得できるように、シェルでスクリプトを書いてみます。 (CentOSならPythonも選択肢になりますが、Pythonはかけないので除外) コード #!/bin/bash # DB定義 DB_HOST="host" DB_USER="ユーザ名" DB_PASS="パスワード" DB_NAME="DB名" MYSQL_COMMAND="/usr/bin/mysql" # DBからデータを取得 QUERY="SELECT * FROM hoge WHERE hogehoge;" ROWS=`${MYSQL_COMMAND} -N -u

                      シェルでDBからデータを取得する - juve534のブログ
                    • どさにっき

                      ■ bash の危険な算術式 _ 使ってる人がいちばん多いだろうからタイトルでは bash としてるけど、ここで取り上げることは zsh および ksh 一族(本家 ksh、pdksh、mksh)にも該当する。ash、dash などでは該当しない。 _ 以下のシェルスクリプトには脆弱性がある。わかるだろうか。 #!/bin/bash # "品目,単価,個数" の形式の CSV を読んで、"品目,合計金額" の形式で出力する csv="foo.csv" while IFS=, read item price num; do echo "$item,$((price*num))" done < "$csv" これ、細工された CSV ファイルを食わせることで、任意コードの実行ができてしまう。数ある脆弱性の中でもとくにヤバいやつだ。どこが穴なのかというと、タイトルにもあるとおり算術式なのだが、し

                      • シェルでcp -fが効かない | 森の人ブログ

                        お久しぶです。 ここのところサボり気味で、全然更新できておらず… 気づけば、ワールドカップも終わり、ゴルフのメジャーも終わり、甲子園も終わり、、 夏が終わってしまった!! 気づけば9月! 9月ではないか。。 どれだけ更新サボってたんだか。 そんな時は、シェルスクリプトを作成した際に、cp -fでやってるのにうまくいかな時の話でもしましょうw うん、それがいいね! ということで、いくら -f指定して実行しても、上書きしても良い?って聞いてくるやつを黙らせる方法です(笑) コマンドの詳細は割愛します。 cpはコピー。-fは強制実行です。 ですので、例えば cp -f /tmp/test.txt /tmp/copy/ ってやると、/tmp/copy/配下にtest.txtがコピーされます。 コピー元の情報を保持したい時は、-pとか-aとか使います。ま、細かい話はいいとして。 で、だいたいこのcp

                        • シェルスクリプト (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
                          • bashのパス名展開を抑止する – guro_chanの手帳

                            見栄えを考慮して*(アスタリスク)でお洒落に飾り付けたメッセージをechoした際に、予期せぬ結果となりたいへん困惑したものである。 $ ls avava $ msg="* THIS IS TEST MESSAGE. *" $ echo ${msg} avava THIS IS TEST MESSAGE. avava どうも * がワイルドカードとして扱われてパス名展開されていけない。此れを抑制するには変数をダブルクォーテーションで囲い込んでやればよかった。 $ echo "${msg}" * THIS IS TEST MESSAGE. * なおbashのマニュアルによればset -fやset -o noglobコマンドによってもパス名展開を抑止できる模様である。 $ man bash (snip) set [--abefhkmnptuvxBCEHPT] [-o option-name] [

                            • [シェル] 画面とログファイルの両方に出力

                              bash で以下のようにすると、標準出力と標準エラー出力を画面とログファイルの両方に出力します。 #!/bin/bash #--------------------------------------------------------# # 標準出力と標準エラーを画面とログファイルへ出力する設定 # #--------------------------------------------------------# LOG=/tmp/debug.log exec > >(tee ${LOG}) 2>&1 #--------------------------------------------------------# echo "** `date '+%Y-%m-%d %H:%M:%S'` - START" # 正常 uptime # エラーを起こしてみる unknown_cmd ec

                              • shtris | アプリケーション例

                                純粋なshell環境で動作するテトリス ゲーム です. 2009年度版のテトリスのガイドラインにそって製作しました. URL: Tetris Guideline. Tetris Wiki. accessed at 2020-05-23 単純そうで奥の深いTetris の仕組み や, ShellScript でここまでできる可能性を知ってもらえると幸いです. 実装したシステムHold QueueNext QueueRandom Generation with Bag SystemScore SystemVariable Goal SystemT-Spin / Mini T-SpinBack-to-Back BonusExtended Placement / Infinite Placement / Classic Lock DownSuper / Classic Rotation Syste

                                  shtris | アプリケーション例
                                • ディレクトリ内の最新のファイルをfindコマンドで探す - @peccul is peccu

                                  tl;dr find -printf '%Ts %TF %TT %p\n' | sort カレントディレクトリ以下のファイル一覧が以下のようなフォーマットで並ぶ 1618914659 2021-04-20 10:30:59.9416574000 ./path/to/file 1618995234 2021-04-21 08:53:54.0000000000 ./path/to/file2 ちょっと説明 %pがファイルパス。 %Tk がファイル変更日時を出力フォーマット指定で、k部分に各フォーマットを指定する。 TのかわりにAが最終アクセス、Cがステータス変更日時(?) find(1) - Linux manual page より引用 @ seconds since Jan. 1, 1970, 00:00 GMT, with fractional part. Time fields: H h

                                    ディレクトリ内の最新のファイルをfindコマンドで探す - @peccul is peccu
                                  • findとxargsでsleepしながらファイル移動する - Qiita

                                    大量のファイルを扱う際に、サーバー負荷を減らすためにsleepでウェイトしながら移動させたい時なんかに。 find ./src/*.zip -print -exec sleep 0.5 \; | xargs -n1 -I%% mv -v %% ./dest/

                                      findとxargsでsleepしながらファイル移動する - Qiita
                                    • Zenn

                                      404ページが見つかりませんでした

                                      • Bash の構文: 関数のデフォルト引数を定義する | まくまくLinux/Shellノート

                                        以下の関数では、パラメータを何も指定しないで呼び出すと、par1 ローカル変数に ABC が入ります。 パラメータを指定すると、そちらが使用されます。 param-test.sh

                                          Bash の構文: 関数のデフォルト引数を定義する | まくまくLinux/Shellノート
                                        • シェルスクリプト[[]]のススメ - DENET 技術ブログ

                                          こんにちは。 最近シェル芸かっこいいなと思い立ちシェルスクリプトの勉強をしています。 下地です。 今日はシェルスクリプトの小技を紹介しようと思います。 宜しくお願いします。 if文お供 [と[[ シェルスクリプトを書くときに良くお世話になるのがif文です。 ifは条件分岐を行う制御構造ですが、一緒に使われるのが[です。 私も最初勘違いしていたのですが、これは条件式ではなくてコマンドです。 別名testコマンドと呼ばれています。 #!/bin/bash string=aaa if [ "$string" = aaa ]; then echo OK fi という感じで使われます。 このように条件を判断する[コマンドですが、似たような構文として[[という書き方があります。 これは[とは違い、コマンドではなく構文です。 [を使うときよりシンプルにかける場面が多です。 ではどのような時にメリットがあ

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

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

                                              シェルとUNIXコマンドの未来 ~ これからの10年で起きるシェルスクリプトの変化 - Qiita
                                            • ShellScriptでの事故防止としてShellCheckを適用してみた | DevelopersIO

                                              Linterを用いてのチェックを行う場合、個人的に一番厄介なのはシェルスクリプト。いずれの環境でも問題なく動かせることを見送るとしても、それでもWarning表示がなかなか消えません。 ShellCheckを使った、OSX環境でのWarning対処として実践してみたことについて書いてみました。 ShellCheck環境の設定 ShellCheckを有効にしておきます。 brew install shellcheck この記事での実行は coc-diagnostic にて。 :CocInstall coc-diagnostic とあるスクリプトのWarning潰し よくあるシェルスクリプトもWarningの宝庫です。 #!/bin/sh CURRENT=$(cd $(dirname $0) && pwd) cd $CURRENT ポイントは一行に複数のWarning表示が含まれているところ。

                                                ShellScriptでの事故防止としてShellCheckを適用してみた | DevelopersIO
                                              • カウプラン機関極東支部 「シェルスクリプトでサーバ設定を自動化する本」 サポートページ

                                                “どんなに恐ろしい武器を持っても、 たくさんのかわいそうなロボットを操っても、 シェルスクリプトから離れては生きられないのよ!” 技術書典5での新刊「シェルスクリプトでサーバ設定を自動化する本」のサポートページです。 タイトル: シェルスクリプトでサーバ設定を自動化する本 ver 2.0 内容: シェルスクリプトを使って、サーバ設定を自動化するツールを自作します。 用途はAnsibleと似てますが、Ansibleより「速い」「分かりやすい」「デバッグしやすい」という特徴があります。 「なんでわざわざYAMLを書かんとあかんの?シェルスクリプトじゃだめなの?」という疑問を胸に生きてきた人にぴったり! ボリューム: A5サイズ、表紙込み207ページ。 (バージョンによって上下します。ご了承ください。) まえがき: こちらで読めます 目次: (クリックで表示) 第2章 サーバ設定自動化(作成編)

                                                • AWS Batchでシェルスクリプトを実行する典型的パターンのご紹介 | DevelopersIO

                                                  去年のre:Invent 2016で発表された、AWS Batch。みなさん、お使いでしょうか? え、名前はシンプルなのに、案外むずかしい? であれば、自分とまったく同じ印象です。 今回は、AWS Batchを利用して、シェルスクリプトを実行するための典型的パターンをご紹介。シェルスクリプトからは、任意のスクリプト(Pythonとか、Node.js)も呼び出すことができ汎用性が高いので、AWS Batchにおけるアプリケーション処理の実装方式として、参考にしていただければと思います。 ほな、いってみよ! 構成図 今回構築する環境の概要は以下の通り。シェルは大きく2つに別れます。AWSの構成要素は非常にシンプルです。 myjob.sh ユーザーが作成するシェル。アプリケーション処理の本体はこちらに記述し、事前に任意のS3バケットにアップロードしておく。 fetch_and_run.sh my

                                                    AWS Batchでシェルスクリプトを実行する典型的パターンのご紹介 | DevelopersIO
                                                  • シェルスクリプトのための良いデザイン ~ expr と bc から知る設計の違い ~ - Qiita

                                                    はじめに POSIX で規定されているコマンドに expr コマンドと bc コマンドがあります。expr は正規表現による比較ができる一方 bc コマンドは高度な算術計算が行えるなど機能は全く同じではありませんが共通する機能として数値計算機能を持っています。ただし同じ計算を行うだけでも、この 2 つのコマンドは設計に大きな違いがあります。この記事ではこの 2 つのコマンドの違いから、シェルスクリプトにとってふさわしいコマンドの設計について解説します。 引数 vs パイプ expr と bc の違いは簡単な計算を行うだけですぐ気づきます。例えば 1 + 2 を行う場合は次のようになります。 なんと bc コマンドは面倒くさいんでしょう? どうみても expr の方が直感的です。わざわざ計算する数式をパイプで渡すなんて冗長です。echo なんて要らないでしょう?シェルスクリプトを本格的に学ぶ

                                                      シェルスクリプトのための良いデザイン ~ expr と bc から知る設計の違い ~ - Qiita
                                                    • よく使うワンライナー - わすれっぽいきみえ

                                                      私がよく利用するワンライナー。 git関連 検索キーワードが含まれるファイル名だけを返す grep -vによる検索除外 git add -p と git commit -v git checkout で1ファイルだけ別のブランチから取ってくる ローカルにあるブランチをリモートにある別名のブランチにpushする リモートブランチをローカルから消す 過去90日間でよく編集されたファイルを抜き出す コマンド再実行関連 昔実行したスクリプトを探す forを使って複数サーバに同じコマンドを実行する ファイル操作 あるファイルの件数を知る git関連 検索キーワードが含まれるファイル名だけを返す $ git grep -l hoge | xargs grep -l foo git grep -l hogeでhogeが含まれるファイル一覧を取得した後、さらにfooが含まれるファイル一覧を吐き出す。 パイ

                                                        よく使うワンライナー - わすれっぽいきみえ