分页: 1 / 1
source还有这种奇怪的用法?
发表于 : 2018-03-13 20:17
由 longf0720
$ cat test.sh
HA=/user/lfs/go/4/entry
LA=${HA/\/go\/4\/entry}
echo $LA
$ sh test.sh
test.sh: 2: test.sh: Bad substitution
$ source test.sh
/user/lfs
source还有这种奇怪的功能,从来没见过呢,哪位大神给解释一下文件第二行是啥意思,
为什么source和bash还有这种奇怪的区别
跪谢
Re: source还有这种奇怪的用法?
发表于 : 2018-03-13 21:06
由 poloshiao
http://manpages.ubuntu.com/manpages/tru ... .3tcl.html
source - Evaluate a file or resource as a Tcl script
This command takes the contents of the specified file or resource and passes it to the Tcl interpreter as a text script.
The return value from source is the return value of the last command executed in the script.
Re: source还有这种奇怪的用法?
发表于 : 2018-03-13 22:15
由 lilydjwg
一点也不奇怪。奇怪的是,没人告诉你 sh 和 bash 不一样吗?
Re: source还有这种奇怪的用法?
发表于 : 2018-03-15 16:04
由 longf0720
lilydjwg 写了:一点也不奇怪。奇怪的是,没人告诉你 sh 和 bash 不一样吗?
查了一下 系统的sh指向的是dash,换成bash就好了
但是第二行为什么可以那么用?
Re: source还有这种奇怪的用法?
发表于 : 2018-03-15 18:00
由 lilydjwg
longf0720 写了:lilydjwg 写了:一点也不奇怪。奇怪的是,没人告诉你 sh 和 bash 不一样吗?
查了一下 系统的sh指向的是dash,换成bash就好了
但是第二行为什么可以那么用?
因为 bash 就是这样设计的。man bash 然后搜「Parameter Expansion」。
Re: source还有这种奇怪的用法?
发表于 : 2018-03-16 18:04
由 longf0720
lilydjwg 写了:longf0720 写了:lilydjwg 写了:一点也不奇怪。奇怪的是,没人告诉你 sh 和 bash 不一样吗?
查了一下 系统的sh指向的是dash,换成bash就好了
但是第二行为什么可以那么用?
因为 bash 就是这样设计的。man bash 然后搜「Parameter Expansion」。
查到了好多参数展开的知识