5 releases (stable)
1.1.1 | Nov 11, 2023 |
---|---|
1.1.0 | May 1, 2023 |
1.0.1 | Jan 5, 2023 |
1.0.0 | Feb 2, 2022 |
0.1.0 | Dec 11, 2021 |
#338 in Command-line interface
351 downloads per month
Used in 6 crates
(3 directly)
11KB
176 lines
Yash-quote
yash-quote
is a Rust library crate for quoting strings used in a POSIX shell script.
This crate provides just one function: quote
. It returns a quoted version of the argument string.
Usage
Add yash-quote
as a dependency in your Cargo.toml
.
use std::borrow::Cow::{Borrowed, Owned};
use yash_quote::quote;
assert_eq!(quote("foo"), Borrowed("foo"));
assert_eq!(quote(""), Owned::<str>("''".to_owned()));
assert_eq!(quote("$foo"), Owned::<str>("'$foo'".to_owned()));
assert_eq!(quote("'$foo'"), Owned::<str>(r#""'\$foo'""#.to_owned()));
License
MIT or Apache 2.0, at your option
Similar crates
r-shquote
provides a function that always quotes using single quotes.- The
quote
function of theshell_words
crate is similar but tries to return the argument unchanged if possible. Unlikeyash-quote
, it only supports ASCII characters. snailquote
is also similar but uses an original format that is not fully compatible with POSIX shells.shell_quote
returns a string escaped using Bash's$'...'
notation.
For the reverse operation of quote
, the yash-syntax
crate provides the unquote
function.