は、これは私が、私はそれを修正する方法を知っている実際のところbashの単項演算子が予想誤差
#!/bin/bash
expression=$1
field=$2
if [ -z "$expression" ]; then
echo "expression is missing"
exit 1
fi
if [ -f /home/miked/table ]; then
if [ -f table ] && [ grep "$expression table" ]; then
grep "$expression" table | cut -d: -f${2:-3} | clipit
else
echo "no match found"
fi
else
echo "there is no table file"
fi
を思い付いたスクリプトですが、それは固定だ理由 私は知りません。
grep
と"
の間のスペースを削除すると、すべて正常に動作していますが、私はその理由を理解できないようです。
コマンドラインに直接grep something file
を入力すると、正常に動作しています。スクリプト内でgrep
を"
に貼り付けるのはなぜですか?
? – TallChuck
はい、私はここで説明が必要です – jaindoe
サイドノートは質問にはあまり関係ありません:なぜ '/ home/miked/table'が存在するのかまずチェックしますが、現在のディレクトリで' table'を使って作業していますか? –