sh 脚本和 sh < 脚本有什么区别

Use*_*159 4 io-redirection shell-script

有什么区别

sh myscript
Run Code Online (Sandbox Code Playgroud)

sh < myscript
Run Code Online (Sandbox Code Playgroud)

我玩过,它们似乎有相同的效果。它们是等价的吗?

AMA*_*nc. 9

他们不是。有些事情是行不通的。想到的一件事是:

sh myscript -flag1 -value=3
Run Code Online (Sandbox Code Playgroud)

是不可能的sh < myscript

使用sh < myscript,$0 设置为sh,而不是myscript,所以

echo this script is $0
Run Code Online (Sandbox Code Playgroud)

不会工作

此外,如果您的脚本读取输入,它将不起作用 - 您不能

sh < myscript < myfiletoread
Run Code Online (Sandbox Code Playgroud)