Suppose I have a script like this:
(The example depicts an rysnc use case)
#!/bin/bash
echo -n "Enter Source Directory:"
read srcdir
echo -n "Enter Destination Directory:"
read dstdir
rsync -av --delete "$srcdir" "$dstdir"
The idea here is to prompt the user to enter the "Source" and "Destination" directories for rsync to work with. As is, the user will have to manually enter /path/to/directory/
via the command-line.
Instead, I want to prompt the user to enter the paths through a GUI interface.
Something like this:
What commands can I use to prompt the user with a GUI selection window that returns the file path to the command-line?
Best Answer
You can use this for files:
and this for folders:
for usage, run:
Generally it matches the current theme (for GTK window managers anyway), on my machine with a modded version of Zukitwo 3.8 it looks like this:
One way of using it is like this:
Which would result in
you selected /path/to/file
.You can also use options to set an appropriate title, and the directory it starts in - With your rsync use case, for example:
For files, you can also specify a filetype to select - e.g:
NOTE: You can also use YAD, a fork of Zenity that has loads more features.
Source
For the most part you can use it the same way - for the file browser:
and for the help page:
Though at the time (around version 26?), it had not been updated to match the new GTK 3.14+ interface (zenity had) - it has more features, but check compatibility (based on documentation it should work on GTK+ >= 2.16.0