シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
シェルスクリプト総合 その33
https://mevius.5ch.net/test/read.cgi/tech/1584893550/
シェルスクリプト総合 その34
■ このスレッドは過去ログ倉庫に格納されています
2020/08/21(金) 15:17:55.64ID:mArnj/tT
2020/08/21(金) 15:18:16.96ID:mArnj/tT
・特記なき場合、POSIX準拠シェルが既定です(古きBourneシェルはほぼ絶滅しました)
POSIX準拠シェルは(d)ash, bash, zsh, (m)ksh, yash, posh, (p)boshです
参考 https://unix.stackexchange.com/questions/145522/
特定のシェルの専用機能に依存する場合は明示しましょう(特にPOSIX準拠シェルではないfish, (t)csh等)
・デフォルトシェルのシバンはBourneシェル時代からの伝統で#!/bin/shを使用します。ただしその実体はOSによって様々です
Debian系 … dash CentOS系 … bash Alpine … ash(busybox) Android … mksh
FreeBSD … ash Solaris,OpenBSD … ksh
macOS … bash(Single UNIX Specification準拠のために一部動作が異なる)
・ログインシェルは/bin/shでない場合があります。例 macOS … zsh
・シェルスクリプトは可搬性を持たせるために可能な限りPOSIXに準拠しましょう
仕様 http://pubs.opengroup.org/onlinepubs/9699919799/
参考 https://en.wikipedia.org/wiki/POSIX
・bash依存はなるべく避けましょう。自覚なきbashism。シバンが#!/bin/shなのにbashに依存する構文を使っていませんか?
#!/bin/shを使うならシェル依存は厳禁です。bash依存するなら#!/bin/bashです
・BourneシェルはPOSIX標準化前に主にUNIXで使われていたシェルで多くの亜種が存在します
Bourneシェル≒Version 7 UNIXのshに一番近いのはOpenSolaris由来のHeirloom Bourne Shell、次点でSchily Bourne Shellのoboshです
Heirloom Bourne Shell: sh http://heirloom.sourceforge.net/sh.html
Schily Bourne Shell: obosh http://schilytools.sourceforge.net/bosh.html
歴史的資料 https://www.in-ulm.de/~mascheck/
・csh/tcshでのシェルスクリプトは*まったく推奨しません*
参考 http://www.speech-lab.org/~hiroki/csh-whynot.euc
・Linux/UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。Manページや各種リンクを見ましょう
aproposやman -kでそれらしい単語による簡単な検索もできます
・ワイルドカード・パターンは正規表現ではありません。正規表現の話題はスレ違い(正規表現スレへ)
・シェル芸はシェルスクリプトとは異なります
・シェルスクリプトのことをシェルってゆうな
POSIX準拠シェルは(d)ash, bash, zsh, (m)ksh, yash, posh, (p)boshです
参考 https://unix.stackexchange.com/questions/145522/
特定のシェルの専用機能に依存する場合は明示しましょう(特にPOSIX準拠シェルではないfish, (t)csh等)
・デフォルトシェルのシバンはBourneシェル時代からの伝統で#!/bin/shを使用します。ただしその実体はOSによって様々です
Debian系 … dash CentOS系 … bash Alpine … ash(busybox) Android … mksh
FreeBSD … ash Solaris,OpenBSD … ksh
macOS … bash(Single UNIX Specification準拠のために一部動作が異なる)
・ログインシェルは/bin/shでない場合があります。例 macOS … zsh
・シェルスクリプトは可搬性を持たせるために可能な限りPOSIXに準拠しましょう
仕様 http://pubs.opengroup.org/onlinepubs/9699919799/
参考 https://en.wikipedia.org/wiki/POSIX
・bash依存はなるべく避けましょう。自覚なきbashism。シバンが#!/bin/shなのにbashに依存する構文を使っていませんか?
#!/bin/shを使うならシェル依存は厳禁です。bash依存するなら#!/bin/bashです
・BourneシェルはPOSIX標準化前に主にUNIXで使われていたシェルで多くの亜種が存在します
Bourneシェル≒Version 7 UNIXのshに一番近いのはOpenSolaris由来のHeirloom Bourne Shell、次点でSchily Bourne Shellのoboshです
Heirloom Bourne Shell: sh http://heirloom.sourceforge.net/sh.html
Schily Bourne Shell: obosh http://schilytools.sourceforge.net/bosh.html
歴史的資料 https://www.in-ulm.de/~mascheck/
・csh/tcshでのシェルスクリプトは*まったく推奨しません*
参考 http://www.speech-lab.org/~hiroki/csh-whynot.euc
・Linux/UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。Manページや各種リンクを見ましょう
aproposやman -kでそれらしい単語による簡単な検索もできます
・ワイルドカード・パターンは正規表現ではありません。正規表現の話題はスレ違い(正規表現スレへ)
・シェル芸はシェルスクリプトとは異なります
・シェルスクリプトのことをシェルってゆうな
2020/08/21(金) 15:19:27.93ID:mArnj/tT
関連スレ
【Bash】Windows Subsystem for Linux【WSL】8
https://mao.5ch.net/test/read.cgi/linux/1590742701/
Bashでプログラミング [転載禁止](c)2ch.net
https://mao.5ch.net/test/read.cgi/linux/1443885102/
シェルスクリプト総合 その28
https://mevius.5ch.net/test/read.cgi/unix/1533154936/
zsh その7
https://mevius.5ch.net/test/read.cgi/unix/1337844883/
【POSIX】UNIXプログラミング【BSD】 [転載禁止](c)2ch.net
https://mevius.5ch.net/test/read.cgi/unix/1443103705/
【Bash】Windows Subsystem for Linux【WSL】8
https://mao.5ch.net/test/read.cgi/linux/1590742701/
Bashでプログラミング [転載禁止](c)2ch.net
https://mao.5ch.net/test/read.cgi/linux/1443885102/
シェルスクリプト総合 その28
https://mevius.5ch.net/test/read.cgi/unix/1533154936/
zsh その7
https://mevius.5ch.net/test/read.cgi/unix/1337844883/
【POSIX】UNIXプログラミング【BSD】 [転載禁止](c)2ch.net
https://mevius.5ch.net/test/read.cgi/unix/1443103705/
2020/08/21(金) 15:25:17.16ID:MuUIpq44
>>1
おっつん
おっつん
5デフォルトの名無しさん
2020/08/24(月) 18:01:20.80ID:xVB6pD3/ こんにちは
Macでzshを使っています
フォルダに
memo20200810.txt
memo20200817.txt
memo20200824.txt
のようなファイルがあったとして(週に1つずつ増える)
最新のファイルをechoで見たいとしたらどうするのがいいでしょうか???
Macでzshを使っています
フォルダに
memo20200810.txt
memo20200817.txt
memo20200824.txt
のようなファイルがあったとして(週に1つずつ増える)
最新のファイルをechoで見たいとしたらどうするのがいいでしょうか???
2020/08/24(月) 18:06:26.10ID:xVB6pD3/
すみませんechoではなくcatでした
別にコマンドは何でもいいので最新のテキストの内容を見る方法を知りたいです
別にコマンドは何でもいいので最新のテキストの内容を見る方法を知りたいです
2020/08/24(月) 18:08:35.17ID:eDLiikcy
cat "$(/bin/ls *.txt | tail -1)"
2020/08/24(月) 18:14:51.49ID:xVB6pD3/
ありがとうございました!
9デフォルトの名無しさん
2020/08/24(月) 19:06:43.25ID:8Ar+AlN+ ファイルが大量にあった場合には大きい順でソートして1行目を取り出すみたいに書いた方が速くないか?
10デフォルトの名無しさん
2020/08/24(月) 19:12:31.00ID:8Ar+AlN+ ただし ls で引数に指定するのはディレクトリ。
2020/08/25(火) 08:17:19.49ID:kX+0EEJG
>>7
ちなみにlsだけフルパスなのは? lsがエイリアスである可能性を考慮とか?
ちなみにlsだけフルパスなのは? lsがエイリアスである可能性を考慮とか?
2020/08/25(火) 08:57:33.67ID:c6c4SV8K
Unixで「複数のパスを区切る」といえばコロン区切りが普通だと思うんだけど
(例えばPATH,CDPATH,NLSPATHとか)
POSIXの
https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_03
でも言われている通りコロンが含まれているパスを指定することができない。
もちろん自分で勝手にPOSIXを逸脱して,バックスラッシュでコロンを
エスケープする,みたいなことをしてもいいんだけど,
なるたけ標準に合わせたい。
環境変数で複数のパスを指定するときに,
コロンを含めるようにしているユーティリティの例とか知らない?
(例えばPATH,CDPATH,NLSPATHとか)
POSIXの
https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_03
でも言われている通りコロンが含まれているパスを指定することができない。
もちろん自分で勝手にPOSIXを逸脱して,バックスラッシュでコロンを
エスケープする,みたいなことをしてもいいんだけど,
なるたけ標準に合わせたい。
環境変数で複数のパスを指定するときに,
コロンを含めるようにしているユーティリティの例とか知らない?
2020/08/25(火) 09:30:33.15ID:lHpt9rtN
PATHがコロン含められないのにコロン使えるようにするの?
チャレンジャーだなw
Unixはパスに使えない文字を決めたほうが良かったと思うね
MS-DOS/Windowsはちょっと多すぎだけど
チャレンジャーだなw
Unixはパスに使えない文字を決めたほうが良かったと思うね
MS-DOS/Windowsはちょっと多すぎだけど
2020/08/25(火) 12:32:57.49ID:c6c4SV8K
2020/08/25(火) 14:21:00.18ID:qvclnJmh
>>14
シェルスクリプトには関係なくね?
シェルスクリプトには関係なくね?
2020/08/25(火) 14:22:05.05ID:qvclnJmh
そういや環境変数名に記号とか改行とか使えるの知ってる?w
2020/08/27(木) 12:47:09.11ID:Di05+wlc
コマンドの戻り値を反転させたい、つまり0のときは非0に、非0のときは0に変えたいんだけど、どうすれば?
set -e状態のスクリプトで、特殊なコマンドを使いたい場合に。
また、makeで使うときにmake専用の記法(-とか@とか)がもしあればそれも。
set -e状態のスクリプトで、特殊なコマンドを使いたい場合に。
また、makeで使うときにmake専用の記法(-とか@とか)がもしあればそれも。
2020/08/27(木) 13:37:00.71ID:Q9F08mvx
2020/08/27(木) 13:56:01.63ID:Di05+wlc
2020/08/27(木) 14:11:33.44ID:Di05+wlc
ちなみに、makefileの場合は、次のように一行にまとめてしまえばごまかすことはできるが、set -eスクリプトだとやっぱりダメなもよう。
コマンド; test $? -ne 0
コマンド; test $? -ne 0
2020/08/27(木) 14:24:40.22ID:eXOTJM+N
!
2020/08/27(木) 15:13:00.41ID:Q9F08mvx
>>19
まあ大体そうなんだろうとは思ったが
どういうときにコマンドの戻り値を反転させたいのか気になるけど
処理をmain関数に入れてしまってこれでできるはず
( main ) && return 1
return 0
! ( main ) でも一応良いはずなんだけど ifを使わずにコマンドの頭に
!をつけるだけだと動かないシェルがあった気がする
今回はサブシェルが間に入っているから大丈夫かもだけど
あとは、思いつきだけどこんな感じでも出来る気がする
#!/bin/sh
set -e
trap 'exit $(($? == 0 ? 1 : 0))' EXIT
任意のコマンド
まあ大体そうなんだろうとは思ったが
どういうときにコマンドの戻り値を反転させたいのか気になるけど
処理をmain関数に入れてしまってこれでできるはず
( main ) && return 1
return 0
! ( main ) でも一応良いはずなんだけど ifを使わずにコマンドの頭に
!をつけるだけだと動かないシェルがあった気がする
今回はサブシェルが間に入っているから大丈夫かもだけど
あとは、思いつきだけどこんな感じでも出来る気がする
#!/bin/sh
set -e
trap 'exit $(($? == 0 ? 1 : 0))' EXIT
任意のコマンド
2020/08/27(木) 15:13:43.83ID:Q9F08mvx
ちなみにmakefileは知らんw
24デフォルトの名無しさん
2020/08/27(木) 15:30:52.02ID:aM8Ck5Vz 0/1の二択なら1から引けばいいじゃんね
2020/08/27(木) 15:33:26.32ID:Q9F08mvx
set -eでエラー終了した時は$?が1とは限らん
trap 'exit $(($? == 0 ? 1 : 0))' EXIT
trap 'exit $(($? > 0 ? 0 : 1))' EXIT # 一文字短縮化w
trap 'exit $(($? == 0 ? 1 : 0))' EXIT
trap 'exit $(($? > 0 ? 0 : 1))' EXIT # 一文字短縮化w
2020/08/28(金) 15:22:32.20ID:hYmDe1I0
2020/08/28(金) 19:08:43.38ID:0gWrnmZ1
trap 'exit $(($? > 0 ? 0 : 1))' EXIT
これいいね
これいいね
2020/08/29(土) 14:16:28.94ID:fysUNitN
MirBSDの記事として書き込まれてたけど
このスレの前々スレくらいでもちょっと議論されてた
「ASCII区切り文字による表形式」についての話
https://www.mirbsd.org/permalinks/wlog2020_e20200620.htm#e20200620_wlog2020
このスレの前々スレくらいでもちょっと議論されてた
「ASCII区切り文字による表形式」についての話
https://www.mirbsd.org/permalinks/wlog2020_e20200620.htm#e20200620_wlog2020
2020/08/29(土) 15:32:00.60ID:tFn2MGZe
>>28
あー、その記事読んだ。FSってフィールドセパレータだと思っちゃうよねw
たまたま俺は、レコードとフィールドと、ファイル区切りもいるかなぁ?って
考えながら探してたから、お、4つもあるじゃんって感じで気付いたが
あー、その記事読んだ。FSってフィールドセパレータだと思っちゃうよねw
たまたま俺は、レコードとフィールドと、ファイル区切りもいるかなぁ?って
考えながら探してたから、お、4つもあるじゃんって感じで気付いたが
30デフォルトの名無しさん
2020/08/29(土) 16:27:42.59ID:2GmTjly/ >>16
知ってる。
知ってる。
31デフォルトの名無しさん
2020/08/29(土) 16:39:43.91ID:2GmTjly/2020/08/29(土) 16:42:17.42ID:2GmTjly/
あ。上の方からゆっくり読んで下まで読まずに書いたら途中で色々と話が進んでいたorz
2020/08/30(日) 18:43:29.75ID:CLO3al/P
https://mevius.5ch.net/test/read.cgi/tech/1537584801/206
この問題のレベル2を実装できないw
レベル1は
foo() { set -- $2 $1 $(shift 2; printf ' %s' "$@"); bar "$@"; }
↑こんな感じのが正解の一つだと思うんだが,
これだと
foo 1 2 3 4 '5 includes space'
という引数を指定した場合に
$ foo 1 2 3 4 '5 includes space'
begin
2
1
3
4
5
includes
space
end
というような出力になってしまう。
この問題のレベル2を実装できないw
レベル1は
foo() { set -- $2 $1 $(shift 2; printf ' %s' "$@"); bar "$@"; }
↑こんな感じのが正解の一つだと思うんだが,
これだと
foo 1 2 3 4 '5 includes space'
という引数を指定した場合に
$ foo 1 2 3 4 '5 includes space'
begin
2
1
3
4
5
includes
space
end
というような出力になってしまう。
2020/08/31(月) 12:38:22.81ID:pjiHotrY
age
2020/09/02(水) 11:33:18.91ID:ifuz91bD
シェルスクリプトマスターしてしまったので
シェルスクリプト難しいって言ってる人が
何が難しいのかわからなくなった
シェルスクリプトが難しいんじゃなくて
初心者だから難しいだけなんじゃ?
シェルスクリプト難しいって言ってる人が
何が難しいのかわからなくなった
シェルスクリプトが難しいんじゃなくて
初心者だから難しいだけなんじゃ?
36デフォルトの名無しさん
2020/09/02(水) 19:16:56.69ID:orWCnyGy >>33
age
age
37デフォルトの名無しさん
2020/09/03(木) 02:22:39.28ID:weiyro1+ >>33
いくつかやり方があると思うがヒントな
位置パラメータが 1 2 3 4 5 の状態から
1 2 3 4 5 2 1 3 4 5 を作り出すことができれば
あとはshift 5をするだけで
2 1 3 4 5 にすることができる
この問題を解くカギは、終了条件をどうするか?なんだよ
いくつかやり方があると思うがヒントな
位置パラメータが 1 2 3 4 5 の状態から
1 2 3 4 5 2 1 3 4 5 を作り出すことができれば
あとはshift 5をするだけで
2 1 3 4 5 にすることができる
この問題を解くカギは、終了条件をどうするか?なんだよ
38デフォルトの名無しさん
2020/09/03(木) 02:23:25.90ID:ZRdxhfh3 1 2 3 4 5 2 1 3 4 5 を作り出すことができれば
スペース入れたつもりだったが見やすくならなかったな
スペース入れたつもりだったが見やすくならなかったな
2020/09/03(木) 21:49:28.77ID:cH7nhQ1J
2020/09/03(木) 23:57:53.85ID:BJh39Y3Y
補足 わかると思うけど
この問題を解くカギは、「ループの」終了条件をどうするか?なんだよ
この問題を解くカギは、「ループの」終了条件をどうするか?なんだよ
2020/09/06(日) 11:36:07.13ID:r+7yP+3C
2020/09/06(日) 14:08:50.79ID:B3LMKUW8
もう自演にしか見えないw
2020/09/06(日) 20:01:46.98ID:7hbRm2sU
前スレ止まってると思ったら埋めずに分裂してたんかい
2020/09/06(日) 20:55:56.09ID:racdSqu4
>>41
できたかニャ?
できたかニャ?
2020/09/07(月) 13:21:21.27ID:77IwCGLU
46デフォルトの名無しさん
2020/09/08(火) 10:49:07.66ID:4xL00uJx 申し訳ないですが誰か教えてください。
以下のような感じで処理をしたいのですが
a.sh(rootで実行)
#!/bin/bash
#処理
#postgresでb.shを実行
su - postgres -c "bash パス/b.sh `$1`"
echo "b.sh完了"
#testでc.shを実行
su - test -c "bash パス/c.sh"
echo "c.sh完了"
exit 0;
b.sh(postgres)
#!bin/bash
#複数処理
exit 0;
これをやるとb.shの一番最初の処理は実行できるのですが
2番目の処理からがエラーで実行できません。
postgresにてb.sh単体で処理を動かすと問題なく動かすことが出来るのですが・・・
このb.shをrootのa.shからpostgresのb.shを呼ぶ方法を教えていただけないでしょうか。
またシェルを分けずに、一貫してやった場合てどうやって途中でユーザ切り替えするのでしょうか?
申し訳ございませんが教えてください・・・
以下のような感じで処理をしたいのですが
a.sh(rootで実行)
#!/bin/bash
#処理
#postgresでb.shを実行
su - postgres -c "bash パス/b.sh `$1`"
echo "b.sh完了"
#testでc.shを実行
su - test -c "bash パス/c.sh"
echo "c.sh完了"
exit 0;
b.sh(postgres)
#!bin/bash
#複数処理
exit 0;
これをやるとb.shの一番最初の処理は実行できるのですが
2番目の処理からがエラーで実行できません。
postgresにてb.sh単体で処理を動かすと問題なく動かすことが出来るのですが・・・
このb.shをrootのa.shからpostgresのb.shを呼ぶ方法を教えていただけないでしょうか。
またシェルを分けずに、一貫してやった場合てどうやって途中でユーザ切り替えするのでしょうか?
申し訳ございませんが教えてください・・・
2020/09/08(火) 11:14:25.07ID:ymgasiE/
48デフォルトの名無しさん
2020/09/08(火) 11:52:32.28ID:4xL00uJx >>47
[root@test-srv test]# ll
合計 8
-rwxrwxrwx 1 root root 216 9月 8 11:46 a.sh
-rwxrwxrwx 1 postgres postgres 115 9月 8 11:44 b.sh
[root@test-srv test]# cat a.sh
#!/bin/bash
echo "a.shの処理を開始します。"
echo "a.shのテスト出力、引数は${1}です。"
echo "b.shを実行します"
su - postgres `/home/postgres/work/work/test/b.sh ${1}`
echo "a.shを終了します"
exit 0;
[root@test-srv test]# cat b.sh
#!/bin/bash
echo "b.shの引数1は${1}です。"
echo "b.shのテスト出力です。"
echo "b.shのテスト出力です。"
exit 0;
[root@test-srv test]# ./a.sh test
a.shの処理を開始します。
a.shのテスト出力、引数はtestです。
b.shを実行します
-bash: b.shの引数1はtestです。: そのようなファイルやディレクトリはありません
a.shを終了します
[root@test-srv test]#
少し処理を変えた結果もこんな下の感じです。
[root@test-srv test]# ./a.sh test
テスト: 引数1はtestです: command not found
これはテストです
[root@test-srv test]# ll
合計 8
-rwxrwxrwx 1 root root 216 9月 8 11:46 a.sh
-rwxrwxrwx 1 postgres postgres 115 9月 8 11:44 b.sh
[root@test-srv test]# cat a.sh
#!/bin/bash
echo "a.shの処理を開始します。"
echo "a.shのテスト出力、引数は${1}です。"
echo "b.shを実行します"
su - postgres `/home/postgres/work/work/test/b.sh ${1}`
echo "a.shを終了します"
exit 0;
[root@test-srv test]# cat b.sh
#!/bin/bash
echo "b.shの引数1は${1}です。"
echo "b.shのテスト出力です。"
echo "b.shのテスト出力です。"
exit 0;
[root@test-srv test]# ./a.sh test
a.shの処理を開始します。
a.shのテスト出力、引数はtestです。
b.shを実行します
-bash: b.shの引数1はtestです。: そのようなファイルやディレクトリはありません
a.shを終了します
[root@test-srv test]#
少し処理を変えた結果もこんな下の感じです。
[root@test-srv test]# ./a.sh test
テスト: 引数1はtestです: command not found
これはテストです
2020/09/08(火) 12:32:53.69ID:o44vEJ9h
`/home/postgres/work/work/test/b.sh ${1}`
` じゃん
su - postgres b.shの引数1はtestです。
をしようとしてるじゃん、
-bash: b.shの引数1はtestです。: そのようなファイルやディレクトリはありません
のメッセージの通りじゃん?
` じゃん
su - postgres b.shの引数1はtestです。
をしようとしてるじゃん、
-bash: b.shの引数1はtestです。: そのようなファイルやディレクトリはありません
のメッセージの通りじゃん?
2020/09/08(火) 13:38:46.77ID:wSlh5XRm
いったい何がしたいんや?
バッククォートは何のため?
バッククォートは何のため?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】J2第38節 水戸がJ2初優勝!長崎は2位でJ1自動昇格!千葉は大量得点もPOへ [久太郎★]
- 【サッカー】水戸ホーリーホック 悲願のJ1初昇格!! J2“最古参”26年目で完勝フィニッシュ [阿弥陀ヶ峰★]
- 「特に中国は事態悪化を控えるべき」 日中対立巡りフランス高官言及 ★2 [蚤の市★]
- 大容量SSDが登場しても「HDDが主役の座を譲る」とは言えない理由 [煮卵★]
- 【速報】 セブンイレブンの揚げ鶏が半額 223円 が 111円 本日のみ [お断り★]
- 【公明党】派遣型風俗店の女性の裸をスマホで盗撮か 徳島県議会議員の古川広志容疑者逮捕 警視庁 [nita★]
- 他サポ2025-275
- 他サポ2025-276
- ジュビロ磐田を応援するにぃ~ vs 鳥栖 part2
- V・ファーレン長崎実況_251129
- ジェフユナイテッド千葉実況 vs 今治
- 東京競馬
- ふなっしょい🍬なのらああああああwww🏡
- 【悲報】千葉県さん、40歳以上の中年男性を婚活イベントから排除して炎上wwwwwwwwwwww千葉県「40歳が結婚しても意味ないよね? [786648259]
- ケーキ:2022年 3024円、2023年 3510円、2024年 3780円、2025年 4104円 20年後は日本人食えなくなってそうだな! [303493227]
- 台湾人「えっ、待って!日本人は台湾台湾言ってて大好きっぽいのになんで全然台湾に来ないの…?」 [271912485]
- 浜田雅功、おわる [329329848]
- コーヒー飲み放題専門店(2時間1680円)開こうと思ってるんやけど
