bash-newbieここに。bash:grep-variableで文字列を比較する問題
私は私のラップトップのタッチパッドを有効/無効にするショートカットとして、次の簡単なスクリプトを使用する:条件があれば、しかし、入力されることはありません
#!/bin/bash
result=$(xinput --list-props 11 | grep "Device Enabled")
echo $result
# Output: Device Enabled (140): 1
if [[ "$result" = "Device Enabled (140): 1" ]]; then
`xinput set-prop 11 "Device Enabled" 0`
else
`xinput set-prop 11 "Device Enabled" 1`
fi
ザ・。 echo $result
は、変数に実際に比較したい文字列値が含まれていることを示しています。私はしばらく検索していますが、if-conditionでresult-variableとstringがなぜ一致しないのかを理解できません。
ご覧ください:http://www.shellcheck.net/ – Cyrus
'echo $ result'を' echo "$ result"に置き換えてください。変数には2つのタブがあります。 – Cyrus
'xinput'をバッククォートで囲んで条件付きで使うのは本当ですか?それらのコマンドの出力を表示したい場合は、先に 'echo'のようなものを使う必要があります。 '$(cmd)'形式のcmd置換を使っているので、これらの行についても同様にしてください。私は 'xinput ...'を条件付きで使うためにcmd-substitutionを必要としないと思います。 'shellcheck.net'がそれにフラグを付けるかどうかを調べることに興味があります。 (ええ、そうです)。がんばろう。 – shellter