とすることで、ファイルサイズとファイル名の一覧が得られる。この例は、入力を空白で区切り、5番目と9番目の列を出力している。空白以外を区切りとしたければ、-F オプションを使えばよい。例えば `.' を区切り (フィールドセパレータという) としたければ
配列(連想配列) 初期化 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=
bashで変数の値を変数名にする方法を紹介します。 1.bashの間接参照を利用する bashでは「!」を使って間接参照することで、変数の値を変数名として利用することができます。 #!/bin/sh foo=hoge bar=foo echo ${!bar} これを実行すれば hoge と出力されます。 ただしFreeBSDやSolarisではこのテクニックは使えないようです。 よって、プログラムを他のOSに移植する可能性がある場合は次項のテクニックを使った方がよいでしょう。 2.evalを使った間接参照を利用する evalは変数を評価した後、引数の文字列をコマンドとして実行する機能があります。 evalを利用した間接参照で、変数の値を変数名として利用することができます。 #!/bin/sh foo=hoge bar=foo eval echo \"\$$bar\" これを実行すれば ho
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-
シェルスクリプト(sh)で、ある変数が空文字列かどうかを調べるには、testコマンドの -n (Nonzero length) または -z (Zero length) を使う……と書いてあるんだけど、コツがいる。 if [ -n $HOGE ]; then echo "nonzero だよ。" fi ↑これはダメ if [ -n "$HOGE" ]; then echo "nonzero だよ。" fi これならOK。 要は、変数が文字列埋め込みされてないと上手く動かない。何故か?はよくわからない。(シェルに於ける変数の概念はどういうものなのか?) 真理表にまとめると、こんな感じ。 -n -z $UNDEFINED T T $ZEROLEN T T $NONZEROLEN T F "$UNDEFINED" F T "$ZEROLEN" F T "$NONZEROLEN" T F 検証用ス
ファイルの詳細な情報を表示する $ stat test.txt File: `test.txt' Size: 3029 Blocks: 16 IO Block: 4096 通常ファイル Device: fd00h/64768d Inode: 17662234 Links: 1 Access: (0744/-rwxr--r--) Uid: ( 500/ yoneda) Gid: ( 500/ yoneda) Access: 2007-11-07 18:42:22.000000000 +0900 Modify: 2007-08-26 17:26:24.000000000 +0900 Change: 2007-08-26 17:26:24.000000000 +0900
2009年01月06日21:36 echoコマンドで改行やタブを扱うには@Linux bash カテゴリdebianecho UNIX系OSでも最も有名な部類に入るコマンドechoは、引数の文字列や変数の中身を表示することができます。つまりCでいうprintf、JAVAでいうSystem.out.printlnみたいなものですね。 # echo "hoge" hoge 改行文字\nがあってもそのまま出力します。( 環境によっては、説明文は "\" 、コマンド例には"¥"と表示されますが、同じ文字です) # echo "hoge\nhoge" hoge\nhoge -eオプションによって\nは改行として扱われます。(これはbashの場合でDebianのdashの場合は最下位の追記を参照) # echo -e "hoge\nhoge" hoge hoge ただし、ここで一つ注意。ダブルクォー
を書いておく。以下解説。 set -e エラーがあったらシェルスクリプトをそこで打ち止めにしてくれる(exit 0以外が返るものがあったら止まるようになる)。「あっあれここでうまくいってないからデータ準備できてないのにあれあれっもうやめて!」ってなるのを防げる。 set -u 未定義の変数を使おうとしたときに打ち止めにしてくれる。Perlでいうuse strict 'vars';的なもの。 って気軽な気持ちで書いてしまって、「ん、やたら時間かかると思ったらスペルミスうわなにをするやめ」ってなるのを防げる。 一部だけ例外にしたい はてなブックマークのコメントより -e は command1 || command2 みたいなことが出来なくなるの使うことないな。-uは付けといて良いが。 確かにおっしゃるとおりですね。コマンドの失敗を考慮して書いている部分については(もしくはやたらexit 0以外
プログラムからメールを送信したいなーと思ったことありますよね。そんな時、どうやってますか? 何らかのプログラミング言語でメール送信用のライブラリーの使い方調べて組む? いやいや、そんなことしなくてもシェルスクリプト(と基本的なコマンド)で送れますって。 必要なのはたったこれだけ メールを送信できるホスト (これ最重要) Bourneシェル(素のshでも、bashでもdashでもkshでもzshでも) sendmailコマンド(大抵は /usr/sbin あたりに入ってます) これだけあればOK。つまりPOSIX(UNIXで必須のもの)以外で必要なものはsendmailコマンドを備えた主要MTA(sendmail、Postfix、qmail、…)だけです。(nkfすら不要) 技術解説 ここからしばらくはどうやって送るかの技術解説ですが、解説すっ飛ばして出来上がったシェルスクリプトの使い方を教
2017年2月17日 便利ツール 作業中に、ふと動作確認がしたい…でも新規ファイルを作るのすらめんどくさい…なんてこと、ありませんか?(え?ない?w)そんな時はファイル不要!環境設定不要なオンラインテストサイトを使っちゃいましょう!動作確認用オンラインツールはいくつかありますが、実際に使っているもの、ブックマーク登録しているものをいくつか紹介します!ユーザー登録してコードを保存できるサイトもあるので、備忘録として使ってみてもよさそうです! ↑私が10年以上利用している会計ソフト! CodePen Webクリエイターボックスでも何度となく紹介してきたCodePen。フロントエンドの動作確認に最適です。Emmetの利用もOK!ライブプレビューができるので、いちいち保存したり実行ボタンをクリックして動作確認する必要はありません。作成したコードをブログへ埋め込んだり、シェアするのも簡単! HTML
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く