Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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 - Fatal编程技术网

Linux 为什么这个简单的脚本在内联和脚本中的行为不同?

Linux 为什么这个简单的脚本在内联和脚本中的行为不同?,linux,bash,shell,Linux,Bash,Shell,我有一个用于文件列表的简单bash脚本: $ cat process.sh for i in *; do echo $i; done $ 然后我跑: $ ./process.sh a b c d process.sh $ 及 及 我已经读过解释内联命令使用sh而不是bash的文章,在这种情况下通配符是非POSIX的吗 为什么在执行同一代码时会出现不同的行为? 如何让这个例子起作用? 还有其他的案子需要注意吗? 解决了。原因是别名不正确。感谢您的回复。我无法复制您看到的空输出;它正确地生成了一

我有一个用于文件列表的简单bash脚本:

$ cat process.sh
for i in *; do echo $i; done
$
然后我跑:

$ ./process.sh
a
b
c
d
process.sh
$

我已经读过解释内联命令使用sh而不是bash的文章,在这种情况下通配符是非POSIX的吗

为什么在执行同一代码时会出现不同的行为? 如何让这个例子起作用? 还有其他的案子需要注意吗?
解决了。原因是别名不正确。感谢您的回复。

我无法复制您看到的空输出;它正确地生成了一个包含直接执行和寻源的多个shell的文件列表,包括bash 3.2和4.3、zsh和dash。能否确认目录中有五个名为a-d和process.sh的文件,并且寻源发布的process.sh文件会产生十个空行?ps-p$$说明了什么?在shell环境中,您的echo别名是什么?不带任何参数运行alias并查看输出。1。我在目录2中有文件a-d和脚本。$ps-p$$PID TTY时间指令21858分/1 00:00:00 bash 3。我没有echo命令的别名。4.source process.sh也会生成空行我在使用vi编辑模式?这有什么关系吗?好的,解决了。bashrc中有一个奇怪的别名。谢谢大家的努力。
$ . ./process.sh










$
$ for i in *; do echo $i; done










$