文書更新:2020年05月24日(日) 午後8時14分05秒

Home > 備忘録 > 言語関連 > シェルスクリプト > 雑記( 15 )

wget の処理

#! /bin/sh
wget http://ssssssssssssss 2>&1 | grep '保存完了'
if [ "$?" -eq "0" ];then
	echo '成功した時の処理'
else
	echo '失敗した時の処理'
fi

find での空白処理(-print0オプション)

ディレクトリー名やファイル名に空白が含まれる場合も検索が可能で、ファイルタイプは拡張子を指定すると便利です。-print0オプションを有効にすると区切り文字がスペースから null に変更して検索できます。
#! /bin/sh
find '検索ディレクトリー名' -type f -name 'ファイルタイプ' -print0 | xargs -0 grep '検索文字列'


例:ディレクトリー「/」の「*.php」の中から「東京」と記載されているファイルを見つけ出す
find / -type f -name '*.php' -print0 | xargs -0 grep '東京'

コマンドの結果を変数に代入したあとの出力について

コマンドの結果を変数に代入してecho文で出力した時に形が崩れる。これをコマンド実行結果と同じように出力することを考えてみた。
hostname を例に使用します。
  1. 普通の出力
  2. コマンドの実行
    [root@server]# hostname
    ※出力結果
    leom.mydns.jp
  3. 変数に代入した時の出力
  4. #!/bin/sh
    ff=$(hostname)
    echo $ff
    ※出力結果
    leom.mydns.jp
  5. 変数に代入し成形して出力
  6. #!/bin/sh
    ff=$(hostname)
    echo "$ff"	←	変数をダブルクォーテーションで囲む
    ※出力結果
    leom.mydns.jp