#!/bin/bash echo -n "押すなよ!絶対押すなよ! [y/N]" read confirm if [[ ${confirm,,} = y ]]; then echo "素直か!" else echo "どーん!" fi
![Bashで変数を大文字小文字変換(uppercase/lowercase)する - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/769f613c5de7f4c929041e9abfadd7c6ba2e1014/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9QmFzaCVFMyU4MSVBNyVFNSVBNCU4OSVFNiU5NSVCMCVFMyU4MiU5MiVFNSVBNCVBNyVFNiU5NiU4NyVFNSVBRCU5NyVFNSVCMCU4RiVFNiU5NiU4NyVFNSVBRCU5NyVFNSVBNCU4OSVFNiU4RiU5QiUyOHVwcGVyY2FzZSUyRmxvd2VyY2FzZSUyOSVFMyU4MSU5OSVFMyU4MiU4QiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9YjljYjQ2Yzg4MzA1NTUyNTc5MTE1MjY4YjJhNGViODk%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBrYXdheiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MGZmOGEyYjE3YzZhMGY4MTgwYTIzNzYzMTA4YWI3Mzg%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3Ddf5c464d7f30506e8239169dc4281bfd)
Bash の場合、スクリプト内での history コマンドはデフォルトで無効化されています。 history コマンドを有効にするためには、 以下のように -o history オプションをセットします。 #!/bin/bash set -o history # historyを有効化 export HISTTIMEFORMAT='%F %T ' # historyの出力に時刻情報を追加 echo test history
シェル上でのファイル操作では、ワイルドカードによって複数ファイルをいちどに指定する方法がある。しかし、拡張子「jpg」「jpeg」のファイルをいちどに指定したい場合には、ワイルドカード指定だけでは断定することができない。 このような際には、次のように「{」「}」で囲うことで複数の条件を指定することが可能だ。また、「image[0-3]」などと記述すれば、「image0」「image1」「image2」「image3」が含まれる指定方法になる。 $ mv *.{jpg,jpeg} ../ カレントディレクトリ内の「*.jpg」「*.jpeg」に当てはまるファイルを1階層上に移動する $ mv *.image[0-3] ../ カレント内の拡張子「image0」「image1」「image2」「image3」ファイルを1階層上に移動する
勤務先の凄腕ハッカーの方に、おおよそ次のような書き方を教わりました。考えろ! というかんじ。爽快な一日でした。 if [ `echo 'hogefuga' | grep 'fuga'` ] ; then echo 'ok' fi
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 16 | head -n 32 | sort | uniq tr -dc 'a-zA-Z0-9' 含める文字種 fold -w 16 生成する文字列の文字数 head -n 32 生成する件数 念のため、生成したい件数分出力されているか確認が必要。 ちゃんとスクリプトを書けばいいんだけど、簡単に済ませたいときはこれでいいかな。 実行結果はこんな感じ。 $ cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 16 | head -n 8 | sort | uniq 4QrrCixUp7SH64k0 7C0jFVNj7TmFTK96 8GQeLqyfkHiFiDtu 8sLaDqQf9dNHNzDd k0Jg6PzlbzRSQCdM liw3Q0ALIDy
for in 等を使う時に 改行だけで分割してくれ! とか思う時ってあるよね。 デフォルトで、区切り文字はIFS という変数に持っているので、こいつを一時的に変更してあげれば区切り文字をすきなようにできる。 1 #!/bin/sh 2 3 LIST="test1\ttest2 test3 4 test4" 5 6 echo 'デフォルトのIFS' 7 for l in ${LIST}; do 8 echo "[${l}]" 9 done 10 11 12 # シェル内の区切り文字を変更する 13 IFS=' 14 ' 15 16 echo '改行だけにしたIFS' 17 for l in ${LIST}; do 18 echo "[${l}]" 19 done 20 こんな感じで、IFS変数を改行のみにして実験してみる。 sugamasao% ./test.sh デフォルトのIFS [te
2023-04-25 逆引きUNIXコマンド 逆引きUNIXコマンド/ターミナルで動作するビジュアルなストレージ使用容量確認コマンド 2022-12-12 Ubuntu/GUI操作のWakeOnLAN・gWakeOnLan Ubuntu 2022-12-05 Ubuntu/Ubuntu22.04でデスクトップのアイコンのサイズを変更する手順 2022-08-25 Xubuntu/画面が勝手にオフされる場合の対処方法 2022-08-11 Xubuntu 2022-07-26 Linux環境設定/Windowsネットワークの名前解決と共有フォルダアクセス方法 2022-07-25 Xubuntu/Thunarでssh(sftp)接続しファイルブラウズする手順 2022-07-20 ソフトウェア/デスクトップ/Plankの設定画面を表示する ソフトウェア/デスクトップ ソフトウェア 2022-
変数に入っている値が整数かどうかをチェックしたい、というシチュエーションはよくあると思います。 JavaScriptの isNaN ですね。 result=`test ${hoge} -eq 0 2> /dev/null` if[ ${result} -le 1 ]; then echo "整数" else echo "整数じゃない" fi 文字列の比較で -eq を使用するとエラーになると、resultにはエラーコード(2以上)が返ってきます。 整数であれば、0 か 1 が返ってくるので、それを利用して整数かどうかチェックできます。 2008/05/15 追記 ・・・ すみません。これ、間違ってますね。 実際は以下のようにする必要があります。 test ${hoge} -eq 0 2> /dev/ull result=$? if [ ${result} -le 1 ]; then ech
形式1 let 算術式[,算術式 ... ] 形式2 ((算術式)) 機能 算術式による数値計算を行って評価します。 また,letコマンドの代わりに,「((算術式))」と記載することでletコマンドと同様に算術式を計算し,評価できます。 letコマンドは,コンマで区切ると算術式を複数指定できます。複数指定した場合,算術式は左から右へ順に計算します。そのため,コンマで区切って指定した算術式を条件式の判定に使用すると,最後に実行した算術式の結果に従って条件判定をします。また,コンマの前後にスペースが存在すると,算術エラーで終了します。演算を括弧でまとめると,演算の優先順位を変更できます。 算術式の詳細については「5.3 算術演算」,条件判定の詳細については「5.2 条件判定」を参照してください。 戻り値 戻り値 意味
for 文の使用方法 for 文とは? for 文は一定回数の繰り返し処理を行う場合に使用するループ制御文である。もしくはある値の集合に対して、それぞれの要素を処理するループ制御文である。 一般的には処理回数や、処理対象となる集合が明確な場合には for 文を使用する。その他の場合は while 文を使用することになる(シェルスクリプトでの for 文は決まった回数のループ処理というよりも、リストに対するループ処理といった方が正しいかもしれない)。 → ループに使用される値のリストと、値リストの各要素がループ毎に設定される変数を指定する。 for 文は値リストに指定された1つ目の値を変数に設定し、do と done の間の処理を実行する。処理後、同様にして値リストに指定された2つ目の値を変数に設定し、再び do と done の間の処理を実行する。3つ目以降も同様にして、全ての値リストが消
配列(連想配列) 初期化 ARR[0]=1 ARR[1]=2 ARR[2]=3 または ARR=(1 2 3) コマンドの結果を配列に格納する files=($(ls /tmp/)) 1つの要素を参照 echo ${ARR[0]} # => 1 echo ${ARR[1]} # => 2 echo ${ARR[2]} # => 3 全要素を参照 echo ${ARR[@]} # => 1 2 3 for a in ${ARR[@]}; do echo $a # => 1(2,3,...) done 配列の大きさ size=${#ARR[@]} # n = 3 ループの中で初期化 for i in 1 2 3; do n=${#ARR[@]} ARR[$n]=$i done echo ${ARR[@]} # => 1 2 3 配列に要素を追加(push) ARR1=(1 2 3) ARR1=
引数を処理する 引数とは? 引数 (ひきすう) とはコマンド (シェルスクリプト) 実行時に、コマンドラインから渡される値のことである。 引数は実行時にプログラム内で参照され、シェルスクリプトの実行結果 (動作) に影響を与える。引数はパラメータと呼ばれることもある。 → コマンド名に続けて引数としてコマンドに渡したい値のリストを指定する。 引数はコマンド名に続けてスペース区切りで指定する。引数として指定可能な値の数は各コマンドにより異なる。 【参考】 引数とオプション コマンド実行時に指定する値には引数とオプションがある。引数は実行に使用されるファイル名や出力されるメッセージなどを指定するのに使用される。 一方、オプションは -f などのように - (ハイフン) とアルファベット1文字で表記され、主にコマンドの振る舞い方を指定する目的で使用されるものである。 また、オプションは -a -
最終更新 2019-01-27 UNIX/Linux のシェル sh・bash・csh・tcsh のリダイレクトを説明する。ファイルへの出力、コマンド出力を別のコマンドの入力とする、標準入力・標準出力・標準エラー出力、パイプなどもあわせて説明する。
対象プラットフォーム: FreeBSD 8.x (下記手順を2014/05/01にFreeBSD 8.4-RELEASEで確認済み) はじめに シェルスクリプトを書いていると、ファイル名を含むパス文字列から、ファイル名や、ディレクトリ名、拡張子の部分のみを抽出したいケースによく遭遇します。 このページでは、これらの文字列の抽出方法について説明します。 早速サンプルのシェルスクリプト ファイル名を含むパス文字列から、ファイル名や、ディレクトリ名、拡張子の部分のみを抽出するのは、かなり容易です。 早速サンプルをご紹介します。 #!/bin/sh test_path="/usr/local/etc/apache/httpd.conf" string_filename=${test_path##*/} string_filename_without_extension=${string_filen
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く