タグ

shellに関するyuu-yuikenのブックマーク (19)

  • BashFAQ/001 - Greg's Wiki

    How can I read a file (data stream, variable) line-by-line (and/or field-by-field)? Don't try to use "for". Use a while loop and the read command. Here is the basic template; there are many variations to discuss: line is a variable name, chosen by you. You can use any valid shell variable name(s) there; see field splitting below. < "$file" redirects the loop's input from a file whose name is store

  • 変数を使用する | UNIX & Linux コマンド・シェルスクリプト リファレンス

    → 他のプログラミング言語と同様に = を使用する。 シェルスクリプトでも C言語などと同様に = を使用することで変数に値を設定することができる。ただし、C言語とは違い = の前後にスペースがあってはいけない。 また、変数名の大文字と小文字は区別されるため変数 VAR と変数 var は別物として扱われる。さらにシェル変数に「型」は存在しないので、文字列や数値を区別なく設定できる。 ポイントをまとめると以下のとおりとなる。 = を使う 値の設定時は変数名の先頭に $ を付けない ($ は参照時のみ) = の前後にスペースを入れない (前後にスペースがあるとエラー) 型は存在しない (declare コマンドや typeset コマンドで似たようなことができるが推奨はしない) 変数名の大文字・小文字は区別される (VAR と var は別物) 特に「2」は初心者が犯しがちなミスなので注意す

    変数を使用する | UNIX & Linux コマンド・シェルスクリプト リファレンス
    yuu-yuiken
    yuu-yuiken 2020/12/11
    特殊な変数とか
  • [Bash]標準出力・標準エラー出力の全て(1>&2とか)まとめ | Coffee Breakにプログラミング備忘録

    標準出力と標準エラー出力についてメモ 毎回調べ直すことになっているので、メモメモ。さらに調べるのにまとまったサイトがなくて1つ1つ調べるはめになるので。まとめ シェルによって違いがあるため今回はbashに限る 前提知識 【知識0】 unixコマンドは左から右に処理される。これは絶対 【知識1】 (標準入力 : 0) 標準出力 : 1 ※画面に出力される 標準エラー出力 : 2 ※画面に出力される 【知識2】 0,1,2はファイルディスクリプタと呼ぶ 【知識3】 「>」リダイレクト シェルの結果を出力する場所を指定可能 command ファイル・ディスクリプタ> 出力先 ※commandは何らかのコマンドかshファイルとしている 【知識4】 出力先などを特定のファイルディスクリプタに送りたい場合は「&ファイル・ディスクリプタ」とする echo "standard output" >&2 【知

  • bashがsh互換(posix)モードで動く時

    Bourne-again shell(bash) は Bourne shell(sh) の置き換えとして作られたものなので、sh の機能をほぼ引き継いだ上で、機能拡張されている。 ただし、sh と完全互換ではないので、bash のみに存在する非互換機能を意図せず sh で実行しようとすると、当然エラーになる。 bash posix モード 以下のケースで bash シェルが sh 互換の posix モードで実行されるようになる bash が sh コマンドで起動された時(shebang 含む) bash が --posix オプションとともに起動された時 bash 起動中に posix オプションが有効にされた(set -o posix)とき sh 非互換機能で実験 bash にあって sh にはない機能の一つに process substitution がある。この拡張機能で bash

    bashがsh互換(posix)モードで動く時
  • Running a bash script from a cronjob fails with "No such file or directory"

    yuu-yuiken
    yuu-yuiken 2020/12/03
    スクリプトをcronから起動する場合はフルパスや環境変数読み込みが必要
  • How to retrieve absolute path given relative

    Is there a command to retrieve the absolute path given a relative path? For example I want $line to contain the absolute path of each file in dir ./etc/ find ./ -type f | while read line; do echo $line done

    How to retrieve absolute path given relative
    yuu-yuiken
    yuu-yuiken 2020/12/01
    相対パスから絶対パスを取得する方法。centosならreadlinkで良さそう。
  • if 文と test コマンド | UNIX & Linux コマンド・シェルスクリプト リファレンス

    if 文と test コマンド if 文とは? if 文とは、与えられた条件式が真のときのみ処理を行い、それ以外の場合は処理をスキップする、などといった場合に使用される条件分岐処理である。 条件式には一般的に test コマンドを用いるが、ls コマンドや grep コマンド等の他のコマンドを用いても構わない。 if 文は条件式に指定されたコマンドの終了ステータスを判定し分岐を行う。終了ステータスが「0」の場合は真、その他の場合は偽となる。 if 文 タイプ 1

    if 文と test コマンド | UNIX & Linux コマンド・シェルスクリプト リファレンス
    yuu-yuiken
    yuu-yuiken 2020/11/30
    ifとかに使う
  • syntax error near unexpected token `<'

    StudentAnwser=() inputScriptFile=001.sh while IFS= read -r line; do StudentAnwser+=( "$line" ) done < <( sh $inputScriptFile test.txt ) it returns a error foo.sh: line 22: syntax error near unexpected token `<' foo.sh: line 22: ` done < <( sh $inputScriptFile test.txt )' what's wrong with that? I follow the solution from other question for reading line from result

    syntax error near unexpected token `<'
    yuu-yuiken
    yuu-yuiken 2020/11/27
    実行権限追加して実行するとエラー解消される
  • teeコマンドの使い方 - Qiita

    「コマンドの結果をファイルに出力したいけど、標準出力でも出力を見たい!」、という欲張りな要望に答えてくれる意外と頼もしいコマンド。 ちなみにサンプルが vagrant コマンドとか使ってますが、あくまで例の一つ。 rsync とかダラーッと出力されるもののほうが良かったかもしれない。 簡単な使い方 ファイルを上書きする

    teeコマンドの使い方 - Qiita
    yuu-yuiken
    yuu-yuiken 2020/11/26
    echoしつつファイル書き出しに使える
  • シェルスクリプト(Bash)の記号の意味 - Qiita

    概要 検索しにくいBashの記号の意味をまとめてみた。 目次 記号 space ! " ' # $ % & () * @ + , - . / : ; < = > ? [] \ ^ _ ` {} | ~ 後付 Bashリファレンスマニュアル スペース (Space) SP 記号の意味 Word Splitting 書式:

    シェルスクリプト(Bash)の記号の意味 - Qiita
  • Bashにおける括弧類の意味 - Qiita

    Bashのスクリプト内で {} や () や [] などの記号の意味。 詳細はここの記事に出ている。 http://stackoverflow.com/questions/2188199/how-to-use-double-or-single-bracket-parentheses-curly-braces http://mywiki.wooledge.org/BashFAQ/031 bracket [] の意味 []はtestコマンドの略式。 if文の引数で使う事が多い。

    Bashにおける括弧類の意味 - Qiita
  • シェルスクリプト - サービス起動確認!

    mk-mode.com Linux, Debian, IT, Server, PG, Ruby, Rails, Python, C++, Fortran, PC, MariaDB, math, GIS, etc... Linux 上シェルスクリプト内でサービス(プロセス)が起動しているかどうかを確認する方法についての備忘録です。 プロセス確認でよく使用するのは ps auxtop コマンドですが、ps コマンドに grep コマンド等をパイプして起動中のプロセス数を取得し、その数で起動しているか停止しているかを判定します。(当方は、シェルスクリプト内でよく使用します) 0. 前提条件 Linux Mint 14 (64bit) での作業を想定。 ps(procps-ng)のバージョンは 3.3.3 を想定。 ps コマンドは BSD 系 Unix の ps コマンドと似ているが若干異

    シェルスクリプト - サービス起動確認!
  • Linux - ディスク使用量監視&メール通知!

    mk-mode.com Linux, Debian, IT, Server, PG, Ruby, Rails, Python, C++, Fortran, PC, MariaDB, math, GIS, etc... Linux サーバで、ディスク使用量を監視しパーティションの残容量が少なくなった場合にメール通知する設定についてです。 そういうことは munin 等のサーバ監視ツールでもできますが、当方が以前から使用している方法(シェルスクリプト&cronを使用する方法)を紹介します。 0. 前提条件 CentOS 6.5 での作業を想定。 GNU bash, version 4.1.2(1)-release での動作を確認。 パーティションを細かく分割していることを想定。 複数パーティションのうち1つでも設定した使用量を超えたらメール送信する。 警告検知時にメール送信するので、SMTP

    Linux - ディスク使用量監視&メール通知!
  • UNIX & Linux コマンド・シェルスクリプト リファレンス

    目次 当サイトについて bash シェルスクリプト入門 -シェルスクリプトのいろは- コマンド Tips シェルスクリプト Tips 変数を使用する 配列を使用する 入力と出力 if 文と test コマンド for 文の使用方法 while 文の使用方法 case 文の使用方法 関数の使用方法 引数を処理する 終了ステータス シグナルと trap コマンド フィルタを使用した文字列操作 1 フィルタを使用した文字列操作 2 日付を取得する 文字コードと改行コード シェルスクリプトのデバッグ AWK リファレンス (Deprecated) シェルスクリプト ライブラリ 『ether.sh』 お知らせ Bluesky を始めました @sunone.me 変更履歴 2023.10.07 ページ内リンクを修正した。 2021.02.01 このサイトに「もう 1 ページ追加しよう」と思ってから、も

    UNIX & Linux コマンド・シェルスクリプト リファレンス
  • 引数を処理する | UNIX & Linux コマンド・シェルスクリプト リファレンス

    引数を処理する 引数とは? 引数 (ひきすう) とはコマンド (シェルスクリプト) 実行時に、コマンドラインから渡される値のことである。 引数は実行時にプログラム内で参照され、シェルスクリプトの実行結果 (動作) に影響を与える。引数はパラメータと呼ばれることもある。 → コマンド名に続けて引数としてコマンドに渡したい値のリストを指定する。 引数はコマンド名に続けてスペース区切りで指定する。引数として指定可能な値の数は各コマンドにより異なる。 【参考】 引数とオプション コマンド実行時に指定する値には引数とオプションがある。引数は実行に使用されるファイル名や出力されるメッセージなどを指定するのに使用される。 一方、オプションは -f などのように - (ハイフン) とアルファベット1文字で表記され、主にコマンドの振る舞い方を指定する目的で使用されるものである。 また、オプションは -a -

    引数を処理する | UNIX & Linux コマンド・シェルスクリプト リファレンス
    yuu-yuiken
    yuu-yuiken 2020/10/19
    オプションと引数を同時に利用する場合、shiftコマンドでずらす
  • シェルスクリプト入門 書き方のまとめ | Memo on the Web

    シェルスクリプト入門として, 基的な書き方をまとめました. 長いですが, 1ページにまとめてみました. 良かったら目次も参考にしてご覧になって下さい. 目次 シェルスクリプトとは 作り方, 実行の仕方 コメント ユーザーからのキーボード入力を受け付ける 変数 通常の変数 特別な変数 演算子 数値計算演算子 比較演算子 コマンドを繋げる演算子 条件文に使える比較演算子 条件文 制御構文(分岐) if文 case文 制御構文(ループ) for文 while文 until文 select文 文字列処理 文字列置換 削除 複数行のテキストの出力(ヒアドキュメント) 関数 シェルスクリプトとは シェルスクリプトとは, シェルの動作をまとめて記述したスクリプトのことです. 決められた文法にしたがって処理を記述することによって, シェルでの処理をまとめて行ったり, 作業を自動化できたりします(例 複数

  • 使いやすいシェルスクリプトを書く

    できればシェルスクリプトなんて書きたくないんだけど,まだまだ書く機会は多い.シェル芸やワンライナーのような凝ったことではなく,他のひとが使いやすいシェルスクリプトを書くために自分が実践していることをまとめておく. ヘルプメッセージ 書いてるシェルスクリプトが使い捨てではなく何度も使うものである場合は,体を書き始める前に,そのスクリプトの使い方を表示するusage関数を書いてしまう. これを書いておくと,後々チームへ共有がしやすくなる.とりあえずusage見てくださいと言える.また,あらかじめ書くことで,単なるシェルスクリプトであっても自分の中で動作を整理してから書き始めることができる.関数として書くのは,usageを表示してあげるとよい場面がいくつかあり,使い回すことができるため. 以下のように書く. function usage { cat <<EOF $(basename ${0})

  • All commands

    Other solutions that involve doing du -sx /* are incomplete because they will still descend other top-level filesystems are that mounted directly at "/" because the * expands to explicitly include all files and directories in "/", and du will still traverse them even with -x because you asked it to by supplying the directory name as a parameter (indirectly via "*"). Show Sample Output 4.0K /mnt 4.

  • 私が他人のシェルスクリプトから学んだこと | Yakst

    私はシェルスクリプトの大ファンで、他人のスクリプトから面白い方法を学ぶのが大好きだ。最近、SSHサーバの2要素認証を簡単にするためのauthy-sshスクリプトに出会った。このスクリプト群を見まわしていて、みんなと共有したいたくさんのクールなことを見つけた。 出力に色付けする 出力文字列を、成功した時は緑に、失敗した時は赤に、警告は黄色に色づけしたいと思うことはたくさんあるだろう。 NORMAL=$(tput sgr0) GREEN=$(tput setaf 2; tput bold) YELLOW=$(tput setaf 3) RED=$(tput setaf 1) function red() { echo -e "$RED$*$NORMAL" } function green() { echo -e "$GREEN$*$NORMAL" } function yellow() { e

    私が他人のシェルスクリプトから学んだこと | Yakst
  • 1