Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.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/7/python-2.7/5.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
Bash:Dot命令双重故障_Bash - Fatal编程技术网

Bash:Dot命令双重故障

Bash:Dot命令双重故障,bash,Bash,如果我使用bash(或“source”)中的dot命令,它将执行两次 ======演示===(用于导入)=====(另存为“演示”) =======测试====(与演示相同的目录) ================ 那么到底发生了什么?问题是,如果每次导入只执行一次,则会导致错误的结果——即使在这个简单的示例中也是如此 运行系统:Mx Linux 19.2(基于debian) bash 5.0.3(1) 测试从xfce4终端开始我无法确认如果这是一个通用问题,其他人也会遇到同样的问题。也许有人知

如果我使用bash(或“source”)中的dot命令,它将执行两次 ======演示===(用于导入)=====(另存为“演示”)

=======测试====(与演示相同的目录)

================ 那么到底发生了什么?问题是,如果每次导入只执行一次,则会导致错误的结果——即使在这个简单的示例中也是如此

运行系统:Mx Linux 19.2(基于debian) bash 5.0.3(1)
测试从xfce4终端开始

我无法确认如果这是一个通用问题,其他人也会遇到同样的问题。也许有人知道这是什么原因。还在为自己测试;-)是的,我的第一个条目,和一个RTFineM-我会这样做(如果我有时间的话)我试图在学习文本编辑之前至少从问题本身开始,你可能(在测试时)做了
。测试
多次。因此,
x
在当前shell(在终端中)中多次与
|
连接。这就解释了你的结果。您可以执行
取消设置x
,然后再次测试整个设置。但是,如果您的目标是在当前shell中修改
x
,请不要对这种行为感到惊讶;你想要它,你就得到了。简言之,寻源修改了当前的shell。我无法确认这是否是一个通用问题,其他人也会遇到同样的问题。也许有人知道这是什么原因。还在为自己测试;-)是的,我的第一个条目,和一个RTFineM-我会这样做(如果我有时间的话)我试图在学习文本编辑之前至少从问题本身开始,你可能(在测试时)做了
。测试
多次。因此,
x
在当前shell(在终端中)中多次与
|
连接。这就解释了你的结果。您可以执行
取消设置x
,然后再次测试整个设置。但是,如果您的目标是在当前shell中修改
x
,请不要对这种行为感到惊讶;你想要它,你就得到了。简言之,寻源修改了当前的shell。
x+="|"
subResTest() {
    return 0 # do nothing 
}   
echo "HI"$x
#/bin/bash
. demo
for ((i=1 ; i<10 ; i++)) ; do
    echo -n $i$x 
    subResTest
done
echo
./test
HI|
HI||
1||2||3||4||5||6||7||8||9||