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
答え2
(())を試してみましたか?文字ではなく数字に使用されます。したがって、比較は次のようになります。
if (( "$a" == "$b" ))
二重==が重要であることに注意してください。