在shell脚本中使用粘贴命令

在shell脚本中使用粘贴命令,shell,unix,paste,Shell,Unix,Paste,我有3个文本文件。我想读取它们并将它们存储在不同的变量中,然后使用粘贴将它们连接起来,并在控制台中打印它们。 我尝试了以下代码,但它抛出了一个错误 找不到文件 这是我的密码 #!/bin/sh value_1=`cat file_1.txt` value_2=`cat file_2.txt` value_3 = paste $value_1 $value_2 echo "$value_3" 注: shell中的=周围不允许有空间 backquote`用于旧式命令中 ` 替代,例如 foo=

我有3个文本文件。我想读取它们并将它们存储在不同的变量中,然后使用粘贴将它们连接起来,并在控制台中打印它们。 我尝试了以下代码,但它抛出了一个错误

找不到文件

这是我的密码

#!/bin/sh
value_1=`cat file_1.txt`
value_2=`cat file_2.txt`
value_3 = paste $value_1 $value_2
echo "$value_3"
注:
  • shell中的
    =
    周围不允许有空间
  • backquote`用于旧式命令中
  • `
替代,例如

foo=`command` foo=`命令` 建议改用
foo=$(命令)
语法。
$()
内部的反斜杠处理不那么令人惊讶,而且
$()
更容易嵌套

检查

注:
  • shell中的
    =
    周围不允许有空间
  • backquote`用于旧式命令中
  • `
替代,例如

foo=`command` foo=`命令` 建议改用
foo=$(命令)
语法。
$()
内部的反斜杠处理不那么令人惊讶,而且
$()
更容易嵌套


选中

第三行应为

value_3=`paste file_1.txt file_2.txt`
您需要反勾号,在
value_3
后面没有空格,并且不要将变量用作参数,请使用文件名


它之所以说“未找到文件”,是因为
值_3
后面有一个空格被解释为要运行的命令

第三行应该是

value_3=`paste file_1.txt file_2.txt`
您需要反勾号,在
value_3
后面没有空格,并且不要将变量用作参数,请使用文件名


它之所以说“未找到文件”,是因为
值_3
后面有一个空格被解释为要运行的命令

paste
希望其参数是文件名,而不是文件内容。对于bash、ksh或zsh,有一种解决方法。替换:

paste $value_1 $value_2
与:

实例 让我们使用以下两个测试文件:

$ cat file1
1
2
$ cat file2
a
b
现在,让我们将这些文件读入变量并对这些变量应用粘贴:

$ value_1=$(cat file1); value_2=$(cat file2)
$ paste <(printf "%s" "$value_1") <(printf "%s" "$value_2")
1       a
2       b
$value\u 1=$(cat文件1);值_2=$(cat文件2)

$paste
paste
要求其参数是文件名,而不是文件内容。对于bash、ksh或zsh,有一种解决方法。替换:

paste $value_1 $value_2
与:

实例 让我们使用以下两个测试文件:

$ cat file1
1
2
$ cat file2
a
b
现在,让我们将这些文件读入变量并对这些变量应用粘贴:

$ value_1=$(cat file1); value_2=$(cat file2)
$ paste <(printf "%s" "$value_1") <(printf "%s" "$value_2")
1       a
2       b
$value\u 1=$(cat文件1);值_2=$(cat文件2)

我试过你的建议。但它会提示我一个错误:“粘贴:line11296:没有这样的文件或目录”,其中line11296是文件_1.txt中的第一行和第一列。我试过你的建议了。但它会提示我一个错误:“粘贴:line11296:没有这样的文件或目录”,其中line11296是文件_1.txt中的第一行和第一列。请引导我