[virt-tools-list] [virt-what] review of allow to use sysctl

Eric Blake eblake at redhat.com
Tue Aug 28 17:26:31 UTC 2018


On 08/28/2018 12:05 PM, Richard W.M. Jones wrote:
> On Sat, Aug 25, 2018 at 12:36:54PM +0300, Anatoly Pugachev wrote:
>> Hello!
>>
>> virt-what$ git desc
>> v1.18-6-gd7fd8a7
>>
>> Latest commit in git "Allow using sysctl, for example when /proc isn't
>> available"
>> doesn't look good for me. Can someone please review/revert this commit
>> or explain me what does this code do (git show -1):
>>
>> +use_sysctl() {
>> +    # Lacking /proc, on some systems sysctl can be used instead.
>> +    OS=$(uname) || fail "failed to get operating system name"
>> +
>> +    [ "$OS" == "OpenBSD" ]

That's a bash-ism. POSIX says you have to spell it [ "$OS" = "OpenBSD" ]

>> +}
>>
>> Running on a linux:
>>
>> virt-what# PATH=$PATH:. ./virt-what
>> ./virt-what: 45: [: Linux: unexpected operator
> 
> I cannot reproduce this warning.  What does uname print on your machine?

The problem is that this is being run on dash (probably a Debian-based 
system), and dash does not support bash's extension of ==.

> 
> $ uname
> Linux
> 
> Does '[' (ie. test) exist on your path?

Yes. But dash's builtin [ behaves only according to POSIX.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org




More information about the virt-tools-list mailing list