当サイトは管理人 SUNONE による、UNIX & Linux のコマンドおよびシェルスクリプト(bash)の中~上級者向けリファレンス・サイトです。
"(ダブルクォート)で囲むときは変数が展開され, '(シングルクォート)で囲むときは変数が展開されません
find . -name \*.tmp -exec rm {} \;
find . -type f -name foo_"*".zip -mtime +7 -exec rm -v -f {} \;
if [ -e パス ]; then # 存在する場合 else # 存在しない場合 fi
if ls *.txt > /dev/null 2>&1 then echo "exists" fi
考え方: ls -l abc* | wc -l で行数を調べその行数が規定を超えているか調べる。
ファイル内の特定の区間の行だけを表示したい場合、headコマンドとtailコマンドを利用することができます。 例えば、3行目~7行目だけを表示するには、次のように指定します。 $ seq 1 10 | head -7 | tail -n +3
set w1="$test1"
したがって、if 文を記述するときは以下のように「;」(セミコロン)を使用し、1行で「if 条件式」と「then」を記述するようにした方がよい。 if 条件式 ; then 処理 fi
% date '+%Y/%m/%d_%H:%M:%S' backup_dir=`date '+%Y-%m-%d'`
echo `date -v-1m +"%Y-%m-%d"`
date +"%FT%T%z"
コマンドの成否を表す数値が特殊変数 $? に自動で設定される。 一般的にはコマンド成功時には「0」が、失敗時には「1」が設定される。
binary_path=`dirname $0` ${binary_path}/child.sh
外部ファイルを読み出すには、 . 外部ファイル名
実行されている自分自身のディレクトリを取得する script_dir_path=$(dirname $(greadlink -f $0))