タグ

Shellに関するU1and0のブックマーク (88)

  • Bash $((算術式)) のすべて - A 基本編 - Qiita

    Bash の算術式の基について詳細に解説します! ※この記事は AdC 2016 Shell Script 4日目 Bash $((算術式)) のすべて - Qiita の衛星記事です (が、実のところこちらの記事のほうが実用性が高いような気がします…)。 関連記事一覧: Bash $((算術式)) のすべて - Qiita Bash $((算術式)) のすべて - A 基編 - Qiita (この記事) Bash $((算術式)) のすべて - B 罠・バグ回避編 - Qiita Bash $((算術式)) のすべて - C 応用編 - Qiita 記事の構成: 先ず A1 で算術式が何かについて述べ、A2 でBash算術式に登場する型を紹介します(一つしかありませんが)。A3 で算術式を構成する原子式・演算子などについて説明をします。A4 で Bash 算術式が使える箇所を列挙しま

    Bash $((算術式)) のすべて - A 基本編 - Qiita
  • 文字列をタブ区切りで分割するけど、スペース分割はしたくないとき - Qiita

    シェルでファイルから読み込んだ文字列をタブ区切りのみで分割したいときに、IFSの指定でハマったのでメモ。 #!/bin/sh #お試し文字列 tData="tab1 tab2 tab3 space1 return" echo $tData #IFSのデフォルトは、スペース、タブ、改行。 #IFSへタブのみ設定する。 #タブを打ち込めばOK。 #スペース、改行でも区切られないようになる。 IFS=' ' #\t指定だとNGだった。 #IFS=$'\t' #IFS確認用 echo -n "$IFS" | od -b set -- $tData echo $1 echo $2 echo $3 #処理が終わったらIFS設定をデフォルトへ戻しておく。 IFS=$' \t\n' #IFS確認用 echo -n "$IFS" | od -b

    文字列をタブ区切りで分割するけど、スペース分割はしたくないとき - Qiita
    U1and0
    U1and0 2017/12/24
    “IFS=$' \t\n'”
  • bashの変数($,ダラー,ドル)まとめ - nori3tsu's blog

    書式説明 $?直前に実行したコマンドの終了ステータス $@スペース区切りの実行引数 $*変数$IFS区切りの実行引数 $0ファイル名 $n実行引数のn番目の値 ${@:n}スペース区切りの配列のn番目以降 ${@:n:o}スペース区切りの配列のn番目からo番目 $$プロセスID ${!var}varの値を変数名としてeval実行 ${#var}varの文字数 $((1+2))算術演算 ${foo-bar}fooの変数がない場合にbarを使う ${foo:=bar}fooの変数がない場合にbarを使いfooにbarの値を設定 n,o=数値 var=変数名 参考 BASHでの変数について Bash変態文法最速マスター? - programming 2006-10-27 - 明日=今日×(反省+前向き)+努力

    bashの変数($,ダラー,ドル)まとめ - nori3tsu's blog
  • 「#」でコメントアウトされた行を排除して処理するシェル | オラエーリックスマンの呟き

    #でコメントアウトされた行を排除して処理するシェル シェルで読み込ませるファイルには、先頭を「#」として使い方を補足で書いたりしますが、シェルの処理はそのコメント行をスキップさせる必要があります。 以下のファイルでは、補足が書かれているとともに「CCC」を「#」でコメントアウトしています。 $ cat ./files/AAA ######################################################### # 名前、電話番号、住所をスペース区切りで書いてください。# ######################################################### AAA 090-1111-1111 Tokyo BBB 090-1111-2222 Osaka # CCC 090-1111-3333 Aichi DDD 090-1111-44

    U1and0
    U1and0 2017/10/10
  • atoolを使えばtar, gzip, zip, 7zなどの複数のツールのコマンドラインオプションを覚える必要が無くなります

    atoolを使えばtar, gzip, zip, 7zなどの複数のツールのコマンドラインオプションを覚える必要が無くなります atoolというツールが便利です あなたは tar gzip bzip xz 7z zip rar などを取り扱うツールのコマンドラインオプションを覚えていますでしょうか. 私は覚えられません. なので普段圧縮アーカイブを取り扱うときはatoolを使っています. gentooならemerge atoolでインストールできます. このツールはそれぞれのアーカイブへの操作をラップして, 統一したコマンドラインを提供してくれます. なので, 一々個別のツールの使い方を覚える必要が無くなります. tarにaオプションが付きましたが, それでもzipなどを取り扱うことは多いのでやはり便利です. 取り扱うファイルの拡張子などから使用するツールを自動で判定してくれるので, ツール

    atoolを使えばtar, gzip, zip, 7zなどの複数のツールのコマンドラインオプションを覚える必要が無くなります
    U1and0
    U1and0 2017/09/27
    これはあくまでラッパーなので,それぞれのツールは個別にインストールしておく必要があります. aunpack, apack, als
  • rsyncオプション - Qiita

    rsync -ahvn username@hostname:/var/www/html/* /var/www/html/ --max-size=10M -a を指定することでなるべくコピー元のファイルと同一条件でコピーする。 -h でファイルサイズの視認性をよくする。 -v で詳細を出力する。 -n または --dry-run で対象ファイルを確認する。 --max-size で転送対象のファイルサイズの上限を指定できる。 ファイルの転送状況の表示

    rsyncオプション - Qiita
  • 連番付きのファイルを、順序を維持したまま連番を振り直して、一括でリネーム - Qiita

    ファイルのソート このケースではlsの結果をそのままパイプで渡すと順番がおかしくなるので、あらかじめソートをかけてやる必要がある。 ハイフンの後に続く数字を数値とみなしてソートする。 -t - は'-'でフィールドを区切る -k 2 は2番目のフィールドをソートに用いる -n はフィールドを数値に変換してソートする 連番リネームを行うシェルスクリプト 1番目の引数をプリフィックスとし、2番目以降の引数に渡されたファイルに連番を振ってリネームする。 拡張子は元のまま維持する。 -t オプションを付けると実際にリネームしないで結果をプレビューする。 #!/bin/bash # seqrename opt_test=false while getopts t opt; do case $opt in t) opt_test=true ;; esac done shift $((OPTIND -

    連番付きのファイルを、順序を維持したまま連番を振り直して、一括でリネーム - Qiita
  • bash によるオプション解析 - Qiita

    すこし記事が長いため、簡単なアウトラインを書いておきます。要点だけ掴みたい場合は、最終項の「まとめ」を読むのがいいかもしれません。 コマンドライン引数の一般的な解析手法 それぞれの特徴 〜 getopt と getopts の違い getopts(メリット・デメリット) getopt(メリット・デメリット) 自前で解析しちゃう(唯一のデメリット) まとめ ============================= コマンドライン引数を処理する一般的な手法として、 getopts getopt shift などで自力で解析 といった具合に、上から順に考えつくかと思います。getopt(3) は UNIX において、コマンドの引数を処理する一般的な C 言語のライブラリ関数です。それを用いて実装されたコマンドが getopt(1) です。Bourne シェル系だと内部関数になりますが、同系統の

    bash によるオプション解析 - Qiita
    U1and0
    U1and0 2017/09/27
    [
  • sudo 時に root 権限で実行されてるかを確認する - Qiita

    環境 Ubuntu 15.04 sudo 1.8.9p5 /etc/sudoers に env_reset を設定。 調査 コマンドは info の User information の項目 (info id の 1 ページ前) と、ユーザーを表す環境変数から選んだ。 手動 $ sudo echo $USER user1 $ sudo echo $UID 1000 $ sudo id uid=0(root) gid=0(root) groups=0(root) $ sudo logname user1 $ sudo whoami root $ sudo users user1 $ sudo groups user1 adm cdrom sudo dip plugdev lpadmin

    sudo 時に root 権限で実行されてるかを確認する - Qiita
    U1and0
    U1and0 2017/09/19
    if [ "`whoami`" != "root" ]; then echo "Require root privilege" exit 1 fi
  • bashでのPID取得方法まとめ($$、$PPID、$!、$BASHPID) - Qiita

    いつも忘れるのでPIDの取得方法についてまとめてみた。 bashにおけるPID用変数一覧 bashでは、PIDを取得するための変数があらかじめ用意されている。 シェル変数と特殊パラメータに分かれているが、取得できる対象はすべての変数で異なってくる。 PID取得用の特殊パラメータ 特殊パラメータ 説明

    bashでのPID取得方法まとめ($$、$PPID、$!、$BASHPID) - Qiita
  • Linux・UNIXでコマンドを定期的(数秒ごとなど)に連続実行させる方法 | 俺的備忘録 〜なんかいろいろ〜

    Linuxで、コマンドを定期的に、それもcronを利用するほどでもない間隔(数秒、数分など)で実行させるには、どうすればいいのだろうか? 1.watchコマンドを利用する フロント側でコマンドを連続実行させるならば、watchコマンドを利用すればいい。 watch -n 間隔(秒) コマンド 例えば、1秒ごとに「ls -la」を実行する場合、以下のようにすれば良い。 watch -n 1 ls -la ただし、watchコマンドはバックグラウンドでの実行が出来ない。 そのため、バックグラウンドでの実行をする場合は、次のwhileの方法を取るといいだろう。 2.whileを利用する さて、watchコマンドはバックグラウンドでのコマンド実行は行えない。 そのため、バックグラウンドで連続でコマンドを実行する場合は、whileで以下のようにコマンドを実行すると良いだろう。 while true;

  • ファイルサイズを取得するには | 入出力・ファイル操作 | プログラミング言語の比較 | hydroculのメモ

    U1and0
    U1and0 2017/09/17
    wcコマンドでファイルサイズがわかる。 $ wc -c foo.txt 9213 foo.txt awkコマンドと組み合わせればファイルサイズだけを取得できる。 $ wc -c foo.txt | awk '{print $1}' 9213
  • シェルスクリプト文字列の処理について

    はじめましてよろしくお願いします。 質問サイトもシェルも初心者なので至らない点がございましたら ご容赦の程よろしくお願いします。 下記シェルスクリプトを実行すると下記エラーが発生します。 「test2」変数に空白無しで「abc」と入力するとエラーは発生しません。 変数test2の値(a bc)を変更せずにエラーが発生しない方法はないでしょうか? 手段でもかまいませんので教えてください。 ========================= testsh110207.sh ====================================== #!/bin/sh test1="abc" test2="a bc" if [ ${test1} = ${test2} ] then echo "=:文字列1と文字列2が等しい場合に真" echo "test1の「${test1}」と、test2の

    シェルスクリプト文字列の処理について
    U1and0
    U1and0 2017/09/16
    if \[ ${test1} = ${test2} \]   ↓ if \[ "${test1}" = "${test2}" \] 値にスペースを含む変数を引数に渡すときはダブルクォーテーショ ンで括らないと展開されて複数の引数が渡されたという風にみなさ れてしまいます。
  • Bash : [: -nq: - anyone anygood with bash scripting?

    I've been trying to write a bash script lately, and most things are going ok with the exception of the following.<P>I am trying to test the return value of the previous command with the following code but bash keeps giving me the following error which I don't understand:<P>[: -nq: binary operator expected<P><BLOCKQUOTE><font size="-1">code:</font><HR><pre><BR>#!/bin/sh<P>if [ $? -nq 0 ]; then<BR>

    U1and0
    U1and0 2017/09/03
    #!/bin/sh if [ $? -nq 0 ]; then echo "Last command failed" fi exit 0
  • bashからzshに移行して2014年を迎えよう![ログインシェル]

    この記事は、2013年12月20日に書きました。 ・2014年5月15日にzshの設定にpreztoの事も名前だけ紹介しました。 ・2014年5月15日に.zshrc読み込むたびにPATHが増えていく場合の対処法を追加しました。 ■まえがき 自分なりのzshを入れるメリット。 入力補完が優れてる ←゚+。゚(・∀・)゚。+゚イイ!! 非標準コマンド(brew、gitとか)の入力補完 ←゚+。゚(・∀・)゚。+゚イイ!! カラーリングがbashより見やすい ←゚+。゚(・∀・)゚。+゚イイ!! bashより処理が高速 同時に立ち上げてるターミナル間でのhistory共有 時間のかかる処理が終わったら通知 gitのカレントブランチの表示 ←゚+。゚(・∀・)゚。+゚イイ!! 履歴機能が強力(改行も記録される) ←゚+。゚(・∀・)゚。+゚イイ!! 2014年1月号のソフトウェアデザイン誌にシェ

    bashからzshに移行して2014年を迎えよう![ログインシェル]
    U1and0
    U1and0 2017/08/21
    “$ chsh -s /usr/local/bin/zsh ”
  • [Bash] ファイルやディレクトリの存在をチェックする方法

    Bashで、ファイルやディレクトリの存在を確認する方法を紹介します。 if testによる確認方法 ファイルやディレクトリの存在を確認するには、以下の構文を使います。 if [ -e パス ]; then # 存在する場合 else # 存在しない場合 fi 「パス」の部分に、チェックしたいファイルやディレクトリのパスを指定します。 (実際は、testコマンドを実行することになります。) ファイルtest.txtと、ディレクトリtestdirを用意した状態で、サンプルcheck.shを実行してみます。 test-check-file$ ls check.sh test.txt testdir check.shの内容は以下のとおりです。 #!/bin/bash file=test.txt dir=testdir # test.txtが存在するかチェック if [ -e $file ]; th

    U1and0
    U1and0 2017/07/22
    ; then echo "$file found." else echo "$file NOT found." fi”
  • Specific config details — IPython 8.25.0 documentation

    Important This documentation covers IPython versions 6.0 and higher. Beginning with version 6.0, IPython stopped supporting compatibility with Python versions lower than 3.3 including all versions of Python 2.7. If you are looking for an IPython version compatible with Python 2.7, please use the IPython 5.x LTS release and refer to its documentation (LTS is the long term support release). From IPy

    U1and0
    U1and0 2017/05/23
    “Custom Prompts¶ ”
  • Cookbook: Dynamic prompt

    U1and0
    U1and0 2017/05/23
    bdinamic prompt ipython
  • はてなブログ | 無料ブログを作成しよう

    オーベルジーヌ実レポ べ物の鼻塩塩(未だに通じるのかな) オーベルジーヌというカレーをご存知だろうか 都内にあるデリバリー専門のカレー屋で、 ロケ弁などで大人気の格欧風カレーが楽しめるらしい いいな〜 いいな〜オブザイヤー 都内の奴らはこんな良いモンってんのか 許せねえよ………

    はてなブログ | 無料ブログを作成しよう
    U1and0
    U1and0 2017/05/09
    $ find . -name *.sublime-project | xargs -i mv {} ~/SublimeText3/Packages/User/Projects/
  • gitで便利なエイリアス達 - Qiita

    これはGit Advent Calendar / Jun. - Qiita.16日目の記事です. 私はエイリアスが好きなのでgitまわりのエイリアスについて書いてみます. 間違ってたらすみません,指摘してくださると嬉しいです. 設定方法 いろんなスコープにエイリアスを設定できます. 例としてgit stでgit statusを実行できるようにしてみましょう. 設定ファイルに書き込む方法と,git configコマンドで設定する方法があります. 設定ファイルに書く場合は以下のようにaliasセクションに短縮形 = 展開形の書式で書きます. どの設定ファイルに書くかで適用される範囲が変わります. また,コマンドで設定する場合は,git config [option] alias.短縮形 展開形を実行します. マシン全体に反映させる場合 $(prefix)/etc/gitconfigに書くか,以

    gitで便利なエイリアス達 - Qiita