rokkonet

PC・Androidソフトウェア・アプリの開発・使い方に関するメモ

$を前置して表現する特殊文字 bashシェル

2021 Feb. 27.
2021 Feb. 21.

bash上にて)
シェルにヌル文字・改行文字・タブ文字を与えるには、ドル記号を前置してシングルクォーテーションで括る。
$'\0' null文字
$'\n' 改行
$'\t' タブ文字

これは文字列にも使える
$'abc\nde'

findコマンドでヒットした、null文字で区切られたファイルリストをreadコマンドで読み込んで処理する

while read -d $'\0' File; do
    // DO SOMETHING
done < <(find DIR/ -print0)


/etc/passwdからawkで取り出し、改行で区切られたユーザー名リストをreadコマンドで読み込んで処理する

UserList=$(cat /etc/passwd | awk -F ":" '{print $1}')
while read -d $'\n' User; do
  echo $User
done < <(echo "$UserList")


echoコマンドに与える文字列のいろいろなパターン

echo abc$'\n'de
abc
de

echo "abc$'\n'de"
abc$'\n'de

echo 'abc$'\n'de'
abc$nde

echo -e abc$'\n'de
abc
de

echo -e "abc$'\n'de"
abc$'
'de

echo -e 'abc$'\n'de'
abc$nde

echo abc\nde
abcnde

echo "abc\nde"
abc\nde

echo 'abc\nde'
abc\nde

echo -e abc\nde
abcnde

echo -e "abc\nde"
abc
de

echo -e 'abc\nde'
abc
de

$ echo $abc\nde
nde

echo $"abc\nde"
abc\nde

echo $'abc\nde'
abc
de

echo -e $abc\nde
nde

echo -e $"abc\nde"
abc
de

echo -e $'abc\nde'
abc
de