引数をパイプで参照するには?例えばbashは引数/変数をパイプで参照します
、あなたが./test.sh abcd.txt
を実行するときに
#!/bin/bash
echo $1
以下のようなコードtest.sh
を持っている場合、あなたはabcd.txt画面上に印刷されます。
しかし、私がls *.txt | ./test.sh
を試してみると、空の行がすべてエコーされてしまいました。
引数をパイプで参照するには?例えばbashは引数/変数をパイプで参照します
、あなたが./test.sh abcd.txt
を実行するときに
#!/bin/bash
echo $1
以下のようなコードtest.sh
を持っている場合、あなたはabcd.txt画面上に印刷されます。
しかし、私がls *.txt | ./test.sh
を試してみると、空の行がすべてエコーされてしまいました。
あなたはxargs
を使用して試みることができる:
find . -type f -name \*.txt -printf "%p\0" | xargs -0 -I xxx ./test.sh xxx
@EtanReisnerありがとうございます!私は覚えていないと困ってしまったことを覚えています...私は一度気づきます - 私はそれについての情報を見つけませんでした。私はこれをさらにテストする予定でした。 –
@EtanReisner答えがテスト後に編集され、 '-I xxx'が保存されていました。それ以外の場合は失敗しています。 –
データはSTDINですが、それらは、コマンドライン引数をされない「のパイプ」。ここではSTDINの各ラインを印刷する例を示します
#!/usr/bin/env bash
while read line; do
echo "Line: $line"
done
バッシュread
コマンドへ多くのオプションがあります。詳細は、マニュアルページのSHELL BUILTIN COMMANDS
セクションを参照してください。
STDIN!=コマンドライン引数。 – Biffen