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

#561 in Command-line interface

Download history 37/week @ 2024-09-12 71/week @ 2024-09-19 86/week @ 2024-09-26 97/week @ 2024-10-03 51/week @ 2024-10-10 165/week @ 2024-10-17 45/week @ 2024-10-24 84/week @ 2024-10-31 100/week @ 2024-11-07 50/week @ 2024-11-14 52/week @ 2024-11-21 48/week @ 2024-11-28 38/week @ 2024-12-05 39/week @ 2024-12-12 8/week @ 2024-12-19 1/week @ 2024-12-26

87 downloads per month
Used in 6 crates (3 directly)

MIT/Apache

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.

yash-quote at crates.io yash-quote at docs.rs Build status

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 the shell_words crate is similar but tries to return the argument unchanged if possible. Unlike yash-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.

No runtime deps