Skip to content

qzb/is.sh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

is.sh

Fancy alternative for old good test command.

NPM Version Build

Example

var=123

if is equal $var 123.0; then
    echo "it just works"
fi

if is not a substring $var "foobar"; then
    echo "and it's easy to read"
fi

Installation

In order to use is.sh you can install it with one of following 1-liners:

# Unix-like
$ sudo sh -c 'cd /usr/local/bin && wget raw.githubusercontent.com/qzb/is.sh/latest/is.sh -O is && chmod +x is'

# NPM
$ npm install -g is.sh

If you don't want to install is.sh system-wide you can just download it and source it from your script:

$ wget raw.githubusercontent.com/qzb/is.sh/latest/is.sh
$ source ./is.sh

Usage

Conditions

  • is equal $valueA $valueB - checks if values are the same or if they are equal numbers
  • is matching $regexp $value - checks if whole value matches to regular expression
  • is substring $valueA $valueB - checks if first value is a part of second one
  • is empty $value - checks if value is empty
  • is number $value - checks if value is a number
  • is gt $numberA $numberB - true if first number is greater than second one
  • is lt $numberA $numberB - true if first number is less than second one
  • is ge $numberA $numberB - true if first number is greater than or equal to second one
  • is le $numberA $numberB - true if first number is less than or equal to second one
  • is file $path - checks if it is a file
  • is dir $path - checks if it is a directory
  • is link $path - checks if it is a symbolic link
  • is existent $path - checks if there is a file or directory or anything else with this path
  • is readable $path - checks if file is readable
  • is writeable $path - checks if file is writeable
  • is executable $path - checks if file is executable
  • is available $command - checks if given command is available
  • is older $pathA $pathB - checks if first file is older than second one
  • is newer $pathA $pathB - checks if first file is newer than second one
  • is true $value - true if value is equal "true" or "0"
  • is false $value - opposite of is true $value

Negations

You can negate any condition by putting not in front of it.

$ is number "abc" && echo "number"
$ is not number "abc" && echo "not a number"
not a number

Articles

You can add a, an, and the articles before condition name.

$ is a number 5
$ is not a substring abc defghi

License

MIT