備忘録 シェルスクリプト
備忘録です。
ファイルの拡張子を変えたいだけなのになかなかたどり着けなかったので。
シェルスクリプト
#!/bin/bash
clear
echo ${0##*/} $*
echo ''
echo 'please input "argtest -option /path1/path2/path3/file.ext"'
echo ''
echo '==================================='
echo '全部の引数を扱う'
echo '==================================='
echo '$* = ' $*
echo ''
echo '$@ = ' $@
echo ''
echo '引数繰り返し'
echo 'for arg in "$@"; do'
for arg in "$@"; do
echo ${arg}
done
echo ''
echo 'for arg in "$*"; do'
for arg in "$*"; do
echo ${arg}
done
echo ''
echo '==================================='
echo '引数を個別に扱う'
echo '==================================='
echo 'コマンド名の取り出し'
echo '${0} = ' ${0}
echo ''
echo '第1引数の取り出し'
echo '${1} = ' ${1}
echo ''
echo '第2引数の取り出し'
echo '${2} = ' ${2}
echo ''
echo '==================================='
echo 'パス文字列を操作する'
echo '==================================='
echo '第2引数からパスを取り出し'
echo '${2%/*} = ' ${2%/*}
echo ''
echo '第2引数からルートを取り出し'
echo 'aaa=${2#*/}'
aaa=${2#*/}
echo 'aaa='${aaa}
echo '/${aaa%%/*} = ' /${aaa%%/*}
echo ''
echo '第2引数からファイル名を取り出し'
echo '${2##*/} = ' ${2##*/}
echo ''
echo '第2引数から拡張子を取り出し'
echo '${2##*.} = ' ${2##*.}
echo ''
echo '第2引数から拡張子をカット'
echo '${2%%.*} = ' ${2%%.*}
echo ''
echo '第2引数からベース名を取り出し'
echo 'bbb=${2##*/}'
bbb=${2##*/}
echo 'bbb='${bbb}
echo '${bbb%.*} = ' ${bbb%.*}
echo ''
echo '==================================='
echo '# と % の使い方'
echo '==================================='
echo '先頭から検索して最初に見つけた/までをカット'
echo '${2#*/} = ' ${2#*/}
echo ''
echo '先頭から検索して最後に見つけた/までをカット'
echo '${2##*/} = ' ${2##*/}
echo ''
echo '末尾から検索して最初に見つけた/までをカット'
echo '${2%/*} = ' ${2%/*}
echo ''
echo '末尾から検索して最後に見つけた/までをカット'
echo '${2%%/*} = ' ${2%%/*}
echo '==================================='
実行結果
argtest -option /path1/path2/path3/file.ext
please input "argtest -option /path1/path2/path3/file.ext"
===================================
全部の引数を扱う
===================================
$* = -option /path1/path2/path3/file.ext
$@ = -option /path1/path2/path3/file.ext
引数繰り返し
for arg in "$@"; do
-option
/path1/path2/path3/file.ext
for arg in "$*"; do
-option /path1/path2/path3/file.ext
===================================
引数を個別に扱う
===================================
コマンド名の取り出し
${0} = /data/data/com.termux/files/usr/bin/_local/argtest
第1引数の取り出し
${1} = -option
第2引数の取り出し
${2} = /path1/path2/path3/file.ext
=================================== パス文字列を操作する
===================================
第2引数からパスを取り出し
${2%/*} = /path1/path2/path3
第2引数からルートを取り出し
aaa=${2#*/}
aaa=path1/path2/path3/file.ext
/${aaa%%/*} = /path1
第2引数からファイル名を取り出し
${2##*/} = file.ext
第2引数から拡張子を取り出し
${2##*.} = ext
第2引数から拡張子をカット
${2%%.*} = /path1/path2/path3/file
第2引数からベース名を取り出し
bbb=${2##*/}
bbb=file.ext
${bbb%.*} = file
===================================
# と % の使い方
===================================
先頭から検索して最初に見つけた/までをカット
${2#*/} = path1/path2/path3/file.ext
先頭から検索して最後に見つけた/までをカット
${2##*/} = file.ext
末尾から検索して最初に見つけた/までをカット
${2%/*} = /path1/path2/path3
末尾から検索して最後に見つけた/までをカット
${2%%/*} =
===================================
上記に掲載したシェルスクリプトです。
この記事が気に入ったらサポートをしてみませんか?