Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何加上「';变量中的字符本身?_Linux_Bash_Shell_Terminal - Fatal编程技术网

Linux 如何加上「';变量中的字符本身?

Linux 如何加上「';变量中的字符本身?,linux,bash,shell,terminal,Linux,Bash,Shell,Terminal,我对脚本编写有点陌生,所以我们开始: 我想在一个变量中添加几个不同的变量,这可以通过var1=test1轻松完成 Var2=test2 Var3=$var1$var2 但是如果文本更复杂,并且包含“,例如: Var1= "I'm "dead" and" Var2= "not "alive" nowadays" Var3=$Var1$Var2 这将导致 /test.sh:16:/test.sh:我死了,没找到 ./test.sh:17:./test.sh:现在不存在:未找到 但我希望它是一个文本

我对脚本编写有点陌生,所以我们开始:

我想在一个变量中添加几个不同的变量,这可以通过
var1=test1轻松完成
Var2=test2
Var3=$var1$var2
但是如果文本更复杂,并且包含,例如:

Var1= "I'm "dead" and"
Var2= "not "alive" nowadays"
Var3=$Var1$Var2
这将导致

/test.sh:16:/test.sh:我死了,没找到
./test.sh:17:./test.sh:现在不存在:未找到

但我希望它是一个文本字符串,上面写着:

我现在“死”了,而不是“活”

需要通过输入执行复杂的长命令字符串吗


我说得通吗?

在这里使用
文档
并避免容易出错的转义:

# populate var1
read -r var1<<-'EOF'
I'm "dead" and
EOF

# populate var2
read -r var2<<-'EOF'
not "alive" nowadays
EOF

# combine them
var3="$var1 $var2"
echo "$var3"

使用另一个
var=''''''''
var=“''''''''''''''
或使用转义
var=\''\'\'\'\'\''\'''\
@Ivan尝试过了,它打印了\chars..只在这里产生了一个空行,我只是复制了你写的内容(添加了顶部或使其可执行)你是对的,那一个有效,奇怪的是,我从这里复制它时,它不起作用。。那么,是否有合并$@某处的方法呢?这不是假设要添加在.sh文件之后添加的所有参数吗?与test.sh testing testing类似。将
'EOF'
替换为
EOF
(即删除
EOF
周围的引号),然后它将允许在here-doc中使用
“$@”
。不知怎的,#/bin/bash已改为#/bin/sh,这就是为什么我第一次尝试就没用的原因……你真是天才!,假设我想以命令的形式“运行”那一行,我是否只是删除echo并在一行上写入:$var3?在同一脚本中,如果课程。。
I'm "dead" and not "alive" nowadays