ifループのデータ比較の問題

ifループのデータ比較の問題

Bashには2つの変数があります。テストにより、そのうちの1つは整数で、もう1つは文字列であることがわかりました。私はそれらを比較し、彼らが同じであることを確認したいと思います。次のオプションを試しました。

if [ "$a" -eq "$b" ]

if [[ "$a" -eq "$b" ]]

if [ "$a" = "$b" ]

if [[ "$a" = "$b" ]]

文字列変数を整数に変換しようとしています。

a=$(($a+0))

しかし、次のエラーが発生します

+0") 構文エラー: 無効な算術演算子 (" で示されるエラー)

それらのどれも期待した結果を得られませんでした。何が間違っているのか教えてください。

複数のCSVファイルがあります。各ファイルの最後の行の 2 番目のフィールドには、そのファイルの行数が含まれます。ファイルから行数を取得し、ファイル内の実際の行数と比較する必要があります。同じであれば、私だけを処理してください。

ROW_COUNT=`grep -c ^ /tmp/file1.csv` --This is the number

LAST_LINE=`tail -n 1 /tmp/file1.csv`
ACTUAL_ROW_COUNT=`echo ${LAST_LINE} | cut -d "," -f 2` --This is the string

--now i am comparing these two numbers to see if they are same.
if [[ ${ROW_COUNT} == "${ACTUAL_ROW_COUNT}" ]]; then -- Here it is breaking

ベストアンサー1

次のif文は私にとって効果的です。

if [[ ${a} = *"${b}"* ]]; then

おすすめ記事