ls
returnを仮定するとfile1 file2 dir1 dire2 ...
印刷したいと思いますyou have file1 file2 dir1 dire2 ... in currnent folder
。
どうすればいいですか?
ls | xargs -i echo 'you have {} in current folder'
印刷
現在のフォルダにfile1があります 現在のフォルダにfile2があります 現在のフォルダにdir1があります 現在のフォルダにdir2があります 現在のフォルダにxxxがあります
また試してみましたが、うまく
ls |xargs printf 'you have %s %s %s %s in current folder'
いきませんでした。ファイル数が定義されていないためです。printf
この場合、正しい構文は何ですか?
ls | xargs printf 'you have $@ in current folder'
私が得ることができる最も近いものですが、動作しません。
ベストアンサー1
以下は機能しますが、セキュリティに悪影響を及ぼす可能性があります。
echo "You have" * "in current folder"
IMOはより良いアプローチですが、次の2行が必要です。
files=(*)
echo "You have ${files[@]} in curent folder"
printfを使用してください:
files=(*)
printf '%s ' "You have ${files[@]} in current folder"