gpt4 book ai didi

linux - Bash:单引号、双引号和感叹号

转载 作者:太空狗 更新时间:2023-10-29 11:39:43 32 4
gpt4 key购买 nike

我有一个名为 example 的简单脚本:

#!/bin/sh
echo $'${1}'

请注意,此处$''的用法是将\n转换为换行。${1} 是传递给此 shell 脚本的第一个参数。

我想将参数传递给此脚本 example 并打印以下内容:

#1. You're smart!
#2. It's a difficult question!

我尝试了以下方法:

example "#1. You're smart!\n#2. It's a difficult question!"

错误:-bash: !\n#2.: 找不到事件

然后我尝试通过单引号转义 !,并尝试:

example '#1. You're smart\!\n#2. It's a difficult question\!'

输出:

${1}

这里有什么解决办法吗?非常感谢!

最佳答案

$ cat t.sh
#! /bin/bash
echo -e $@

或者 echo -e $1,或者 echo -e ${1} 如果您只想处理第一个参数。

要让 bash 停止尝试扩展 !,请使用 set +H(参见 In bash, how do I escape an exclamation mark?)

$ set +H
$ ./t.sh "#1. You're smart!\n#2. It's a difficult question!"
#1. You're smart!
#2. It's a difficult question!

关于linux - Bash:单引号、双引号和感叹号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6016664/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com