2017-05-20 6 views
0

計算でこのエラーが発生しています。bash:369-1:構文エラー:オペランドが必要です(エラートークンは "369-1")

IdWin=$(xprop -root | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}') 
xabs=$(xwininfo -id $IdWin | grep "Absolute upper-left X:" | cut -d: -f2 | sed '/ /s///g') 
echo "xabs="$xabs"!" 
xabs=369! 
x=$(($xabs-1)) 
bash: 369-1: syntax error: operand expected (error token is "369-1") 

私が必要とする数字を含む文字列からスペースを取り除くためにsedを使用していることに注目してください。私は間違って何をしていますか?

+0

'sed '//s /// g''は空白を取り除きません。空白があるかどうかを確認し、何も置き換えません。あなたのvarsを引用していないので、スペースは違いはありません – 123

+0

あなたのコードをコピーしたばかりです。そのコードは私のために働いています:3 – tso

+0

私はいつかスペースに問題があると思ったので、 @ 123:あなたは私のsedコマンドがスペースを取り除かないと確信していますか?エコー "1 23" | sed '//s /// g'は私に "123"を返します – aless80

答えて

0

@ 123コメントの私の問題を解決しました。 @ 123はxxdを使用してヘキサダンプを行うように提案しました。

terminal> xxd <(printf "%s" "$xabs") 
00000000: 1b5b 6d1b 5b4b 3336 39 .[m.[K369 

これは色に問題があることを示しています。私は$ HOME/.bashrcの中で私のエイリアスを点検し、私はこのエイリアスは、私の新しいインストールで問題を引き起こしたことがわかった(ただし、私の古いもので):

'alias grep='grep --color=always -B 0 -A 0' 

このエイリアスは、問題を修正削除します。

関連する問題