vis-open —
Interactively select a file to open
vis-open |
[-p
prompt]
[-f]
[--]
[files] |
vis-open takes a list of filenames and directories
on the command-line and displays them in a menu for the user to select one. If
the user selects a directory (including
..
), the
directory contents are displayed as a fresh menu. Once the user has selected a
filename, its absolute path is printed to standard output.
vis-open uses
vis-menu(1) as its user-interface, so see that
page for more details.
-
-p
prompt
- Display prompt before the
list of items. This is passed straight through to
vis-menu(1).
- -f
- Normally, if vis-open is
provided with a single filename or directory argument, it will
automatically select it (printing the filename to standard output, or
presenting a new menu with the contents of the directory). If
-f is provided,
vis-open will always present the arguments
it's given, even if there's only one.
- --
- If this token is encountered before the first non-option
argument, all following arguments will be treated as menu-items, even if
they would otherwise be valid command-line options.
If encountered after the first non-option argument, or after a previous
instance of
--
it is treated as a menu-item.
- files
- File and directory names to be presented to the user. If a
name does not exist on the filesystem and the user selects it, it is
treated as a file.
-
-h
|
--help
- If present, vis-open prints a
usage summary and exits, ignoring any other flag and arguments.
The
vis-open utility exits 0 on success,
and >0 if an error occurs.
In particular, like
vis-menu(1),
vis-open prints nothing and sets its exit status
to 1 if the user refused to select a file.
CHOICE=$(vis-open -p "Select a file to stat")
if [ $? -gt 0 ]; then
echo "No selection was made, or an error occurred"
else
stat "$CHOICE"
fi
vis(1),
vis-menu(1)
Because
vis-open uses
ls(1) to obtain the contents of a directory,
weird things might happen if you have control-characters in your
filenames.