タグ

bashに関するjay777のブックマーク (14)

  • bash/zsh のパラメータ展開(#, %)の覚え方いろいろ - Qiita

    bash/zsh では パラメータ展開の # と %を使って Prefix または Suffix を削除することができます。 $ var='hogefuga' # Prefix削除 $ echo "${var#hoge}" fuga # Suffix削除 $ echo "${var%fuga}" hoge シェルスクリプトではよく使う手法ですが、意外と覚えづらく、特にどちらが Prefix削除 でどちらが Suffix削除 なのか忘れてしまいがちです。(私だけ? 先日そんな悩みを Twitter で吐露したところ、3名の親切な方が覚え方を伝授してくれました。 その覚え方がなかなかユニークで覚えやすかったので紹介します。 # はコメントを表す記号なので Prefix(先頭)削除 # を番号記号と考えて #30 のように使うので Prefix(先頭)削除 % はパーセンテージを表す記号で、30

    bash/zsh のパラメータ展開(#, %)の覚え方いろいろ - Qiita
  • シェルスクリプトのデバッグは typeset または declare を使うと良いかも - よんちゅBlog

    はじめに つい最近知った便利なデバッグ方法 (長年シェルスクリプトを書いているのに知らなかった。これが常識だったら恥ずかしい…) シェルスクリプトのデバッグでは echo で変数の中身を見るという原始的な方法をよく使うかと思います。 いわゆる プリントデバッグ というやつですね。 もう少し詳しいデバッグが必要な場合は、 set -x と set +x でデバッグしたい部分を囲むという方法もあります。 今回は プリントデバッグ で使う echo の代わりに typeset or declare を使うと良いというお話です。 プリントデバッグは typeset or declare を使おう typeset or declare は変数宣言などでよく使うコマンドですが、変数の中身を見るのにも使えます。 echo と比べて何が良いのかというと、変数の中身はもちろん変数名や変数の型も表示してくれ、

    シェルスクリプトのデバッグは typeset または declare を使うと良いかも - よんちゅBlog
  • bashは犠牲になったのだ・・・ - komagataのブログ

    トイレから戻ったら情弱プログラマーの@ko8が 「rbenvの設定が上手くいかない」 とのこと。 見てみるとMacTerminalが起動しない(起動中にshellが落ちてる?) 人に話を聞いてみると、.bashrcを設定するという意味がよくわかっていない模様。 どのファイルを触ったのか聞いてみてもよく覚えていない。 最終的に起動時のエラーを追って行き、全ての設定ファイルを削除しても起動しないことから/bin/bash自体が壊れていることが判明。 @komagata「/bin/bashってファイルいじった?」 @KoyaHomma「いじったかもしれないです・・・」 $ sudo vi /bin/bashした上で、書き込み権限が無いという警告を無視して!wを敢行したらしい。 結局、俺のMacから/bin/bashをAirDropでコピーしてきて事無きを得た。 ほっと一息ついて時計を見ると、

  • bashによるシェルスクリプトの小技(2) - shibainu55日記

    前回(bashによるシェルスクリプトの小技(1))に引き続き、シェルによって自動的に値が設定される特殊な変数について紹介する。特殊な変数を参照することにより、様々な情報を取得することができる(ただし、これらの変数には自分で任意の値を設定することはできない)。 さて、まずは特殊変数を一覧でまとめてみる。お馴染みのものが多いが、最後の2つ(特に最後のPIPESTATUS)についてはきっと今まで知らなかった人もいるんじゃないだろうか。シェルの中でパイプすると途中のコマンドのリターンコード、拾えないとか思っていませんか?今回のポイントとしては、「1. PIPESTATUS変数について」と「2. 特殊変数 $@と$*の違いについて」の2点を主に説明する。 特殊変数一覧表 変数名 自動的に設定される値 $? 直前に実行されたコマンドの終了ステータスが設定される変数。正常終了の場合は「0」、異常終了の場

    bashによるシェルスクリプトの小技(2) - shibainu55日記
  • 最老牌利来-利来最老的品牌 - 首页w66

     最老牌利来-利来最老的品牌 - 首页w66

  • bashの正規表現マッチングの使い方 - adsaria mood

    あるフリーウェアのインストール用bashプログラムを見ていたら次の様なものがあった。(以下の例は簡略化してある。) STRING="abc" if [[ "$STRING" =~ "^ab[cd]$" ]]; then echo "matched" else echo "unmatched" fi if文の条件表現の中に“=~”というオペレータがある。manを見ると =~ オペレータは文字列を正規表現と比較するとある。知らなかった。bashの文字列比較で正規表現が使えるとは。私は正規表現比較が必要な時はgrepに喰わせて判断していたのだが、これを使えば簡単にできる。 ところが、だ。上のプログラムが期待通りに動かない。上の例では =~ の左辺と右辺の正規表現はマッチするはずだが、結果は“unmatched”。色々と正規表現を変えてみたが、どれとしてマッチングしない。しかし、if文を次のように

    bashの正規表現マッチングの使い方 - adsaria mood
  • Mazn.net » Ctrl-Sの端末ロックを無効にする

    bashではCtrl-Sを入力してしまうと端末がロックされた状態になり何も受け付けなくなります。Ctrl-Qで解除できるが、普段ロックすることないしいらいらするから、無効にする方法を調べてみた。 方法はいたって簡単で # stty stop undef でOK。常に有効にしたい場合は.bashrcなどにどーぞ。 Ctrl-Rはreverse-i-searchでコマンド入力履歴をさかのぼって検索できますが、たまに行き過ぎて戻りたくなることがあります。上記の設定でCtrl-Sのロックを無効にすることでi-searchができるようになり、戻ることができます。 ちなみに、Ctrl-Cで実行中のプログラムを止めるのもこのsttyで無効にできます。どのような機能が定義されているかは”stty -a”コマンドでわかります。 $ stty -a speed 38400 baud; rows 50; col

    Mazn.net » Ctrl-Sの端末ロックを無効にする
  • bashの基礎

    なお、以前に操作したコマンドの履歴を番号付きで表示させるには、history コマンドを使用します。デフォルトでは、1000個まで履歴に保存されます。もし、この数値を変更したい場合は、環境変数HISTSIZEの値を変更します。シェルで、HISTSIZE=500 のように入力すると履歴は500回まで保存されるようになります。変更されたかどうかを確認するには、env コマンドを使用します。なお、入力履歴はユーザーごとに、ホームディレクトリ下に .bash_history というファイルが作成されており、そのファイル内に入力履歴が記録されていきます。なので、システムを再起動したり、停止させたりしても、ホームディレクトリ直下に.bash_historyが存在すればいつでも入力履歴を呼び出すことができます。 ここで、ちょっと余談なんですが、TeraTerm での便利な画面(スクロール)移動について紹

    jay777
    jay777 2011/04/11
  • bashをzshに負けないぐらい高機能化するためのtips - 計算機と戯れる日々

    はっきり言って先方予測と複数行編集は無理。だけど代替手段がありそうだ。 ということで、bashでどこまでzshに近づけるかチャレンジしてみる。 使用環境は環境はubuntu8.10 以下を.bashrcに追加 if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi function share_history { history -a; history -c; history -r; } PROMPT_COMMAND='share_history' shopt -u histappend export HISTTIMEFORMAT="%y/%m/%d %H:%M:%S: " export HISTSIZE=300000 function fceditor () { tt=/tmp/$$.sh; cat $1 | ( re

    bashをzshに負けないぐらい高機能化するためのtips - 計算機と戯れる日々
  • 標準入出力すりかえのテクニック

    このシェルスクリプトはいったい何をやっているのでしょう? これは誰が何を実行して、どうして画面に文字が表示されるのでしょうか? ふだんなにげなく使っているコマンドでも、少し深く突っ込んでみるとLinux(UNIX)の仕組みや特徴が見えてきます。 実はechoは、「bashの内部コマンド」の1つであり、bash自身によって実行されています。意外に思われた方も多いかもしれません。なぜなら「echo」は外部コマンドとしても存在する(通常は/bin/echo)からです。でも、普通に設定されたLinuxで実行されるechoはbashの内部コマンドのほうです。試しにやってみましょう。 上は“--version”という文字列をそのまま表示するだけですが、下は“--version”を「バージョンを表示しろ」というオプションと理解して、/bin/echoのバージョンを表示してます。 このように内部コマンドの

    標準入出力すりかえのテクニック
  • bash のコマンド履歴を Ctrl+r で遡りすぎた場合の対処法 - coblog

    bash のコマンド履歴を Ctrl+r で遡りすぎた場合の対処法 [linux] bash では Ctrl+r で履歴を後方検索する機能があります。 Ctrl+r を押すたびに (reverse-i-search) `': に入力した文字列を含むコマンドラインを新しいものから順に検索でき、とても便利です。 しかし、誤って Ctrl+r を押しすぎ、目的のコマンドを通りすぎてしまうことがあります。 そんな時は、Ctrl + g でキャンセルし、再度 Ctrl+r で検索していました。 でも、もうちょっと楽な方法を見つけました。 まず、準備としてターミナルのロック機能が Ctrl+s に割り当てられているのを解除します。 $ stty stop undef 常に割り当てない場合は .bashrc などに書いておくとよいでしょう。 準備は以上です。 Ctrl+r で目的のコマンドを通り過ぎてし

    jay777
    jay777 2011/04/11
  • UNIX の設定ファイル

    UNIX系OS の設定ファイル UNIX系OSには「.(ドット)」で始まる隠しファイルがあります。 これらはUNIX の設定ファイルで、このファイルをカスタマイズすることで、 ユーザが任意の設定に変更することが出来ます。 .bash_history bash のヒストリ記録。これを作らないようにするには、 以下の行を .bashrc に書いておけばよい。 unset HISTFILESIZE unset HISTFILE .bash_login bash がログインシェルのとき、 .bashrcの代わりに 実行されるシェルスクリプト。 tcsh の .loginとは違うので 注意のこと。 .bash_logout bash がログインシェルのとき、シェルが終了する直前に実行される スクリプト。 .bash_profile ログイン時だけに実行される設定ファイル。ここでは、 環境変数の設定な

  • Bashを使うなら理解しておきたいアルゴリズム - 抽出・ソート・結合・集計 - いろいろ解析日記

    Bashでのアルゴリズムの書き方の覚書です。 目次 説明に使用するデータ構造 抽出 ソート Bashでの配列のソート ソートの例(五十音順) ソートの例(数値順) 結合 集計 関連記事 説明に使用するデータ構造 アルゴリズムの説明のために、以下のようなパイプ区切り文字列の配列を使います。 COUNTRIES=("${COUNTRIES[@]}" "日|JPY|127156000") COUNTRIES=("${COUNTRIES[@]}" "フランス|EUR|65073482") COUNTRIES=("${COUNTRIES[@]}" "スペイン|EUR|44904000") COUNTRIES=("${COUNTRIES[@]}" "ロシア|RUB|141903979") COUNTRIES=("${COUNTRIES[@]}" "ベトナム|VND|84238000") COUNTR

    Bashを使うなら理解しておきたいアルゴリズム - 抽出・ソート・結合・集計 - いろいろ解析日記
  • bashのキー操作一覧まとめ - 元RX-7乗りの適当な日々

    bashでは、"Ctrl"や"Esc"キーと組み合わせることで様々な操作ができるので、メモ代わりにまとめておきます。 よくやるのが「Ctrl + s」キーを押してしまうと、フリーズしたかのように見えるので一瞬焦ってしまう。そんな時は・・・ Ctrl + b カーソルを左へ1文字移動 (←キーでもOK) Ctrl + f カーソルを右へ1文字移動 (→キーでもOK) Esc + b カーソルを右へ1単語移動 Esc + f カーソルを右へ1単語移動 Ctrl + p historyの1つ前に入力したコマンドを表示 (↑キーでもOK) Ctrl + n historyの1つ後に入力したコマンドを表示 (↓キーでもOK) Ctrl + h カーソルの左1文字を削除 (BackspaceキーでもOK) Ctrl + d カーソルの右1文字を削除 (DeleteキーでもOK) Ctrl + a カー

    bashのキー操作一覧まとめ - 元RX-7乗りの適当な日々
  • 1