Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.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 bash脚本文件连接_Linux_Bash - Fatal编程技术网

Linux bash脚本文件连接

Linux bash脚本文件连接,linux,bash,Linux,Bash,嗨,在我的脚本中,我将两个文件连接到一个名为output.txt的新文件中。我无法检查output.txt文件是否存在,然后打印“连接成功”消息。连接似乎可以工作并创建一个新文件 cat$file1$file2>>output.txt file3=“$output.txt”#不正确? 如果[-e$file3] 然后 echo“成功连接文件” fi 应该是: file3="output.txt" cat $file1 $file2 >> $file3 if [ -f $file3 ]

嗨,在我的脚本中,我将两个文件连接到一个名为output.txt的新文件中。我无法检查output.txt文件是否存在,然后打印“连接成功”消息。连接似乎可以工作并创建一个新文件

cat$file1$file2>>output.txt
file3=“$output.txt”#不正确?
如果[-e$file3]
然后
echo“成功连接文件”
fi
应该是:

file3="output.txt"
cat $file1 $file2 >> $file3

if [ -f $file3 ]; then
    echo "concatenation of files successful"
fi
应该是:

file3="output.txt"
cat $file1 $file2 >> $file3

if [ -f $file3 ]; then
    echo "concatenation of files successful"
fi
检查文件是否存在并不意味着文件连接成功。这意味着该文件存在

认为:

cat $file1 $file2(missing) >> $file3
cat $file1(missing) $file2 >> $file3
将使
$file3
存在

使用
$?
检查上次操作退出值说明整个操作成功运行

另外,除非您特别希望将
>
附加到现有文件,否则您将始终附加。因此,在第一次操作之后,您的文件将始终存在

检查文件是否存在并不意味着文件连接成功。这意味着该文件存在

认为:

cat $file1 $file2(missing) >> $file3
cat $file1(missing) $file2 >> $file3
将使
$file3
存在

使用
$?
检查上次操作退出值说明整个操作成功运行

另外,除非您特别希望将
>
附加到现有文件,否则您将始终附加。因此,在第一次操作之后,您的文件将始终存在。

在单行中


cat $file1 $file2 >> output.txt && echo 'Success' || echo 'Failed'

单行


cat $file1 $file2 >> output.txt && echo 'Success' || echo 'Failed'


删除美元符号:
file3=“output.txt”
<代码>$output将被名为output的变量替换(此处发布的代码段中不存在该变量)。如果将file3变量移到
cat
上方,还可以将其用于输出重定向,以避免重复文件名两次。删除美元符号:
file3=“output.txt”
<代码>$output将被名为output的变量替换(此处发布的代码段中不存在该变量)。如果将file3变量移到
cat
上方,还可以将其用于输出重定向,以避免重复文件名两次。该
-f
无法解决问题。事实上,
-e
也很好。刚刚修复了它-现在应该可以了,我改为upvote,因为@cfillion只是添加了他的答案作为评论。因此,即使这是经过编辑的,但现在这是正确的答案@phebus-注意,在shell脚本中,您不需要使用
之后,如果
之前,则
现在尝试运行名为
file3
的命令。等号周围不应该有空格。
-f
不能解决问题。事实上,
-e
也很好。刚刚修复了它-现在应该可以了,我改为upvote,因为@cfillion只是添加了他的答案作为评论。因此,即使这是经过编辑的,但现在这是正确的答案@phebus-注意,在shell脚本中,您不需要使用
之后,如果
之前,则
现在尝试运行名为
file3
的命令。等号周围不应该有空格。