在许多SO问题和bash教程中,我看到我可以通过两种方式访问bash脚本中的命令行参数:
$ ~ >cat testargs.sh
#!/bin/bash
echo "you passed me" $*
echo "you passed me" $@
Run Code Online (Sandbox Code Playgroud)
结果如下:
$ ~> bash testargs.sh arg1 arg2
you passed me arg1 arg2
you passed me arg1 arg2
Run Code Online (Sandbox Code Playgroud)
$*
和之间有什么区别$@
?
应该何时使用前者,何时使用后者?
有人能告诉我是否应该在shell脚本中包含变量的引号?
例如,以下是正确的:
xdg-open $URL
[ $? -eq 2 ]
Run Code Online (Sandbox Code Playgroud)
要么
xdg-open "$URL"
[ "$?" -eq "2" ]
Run Code Online (Sandbox Code Playgroud)
如果是这样,为什么?
假设我有这个目录结构:
DIRECTORY:
.........a
.........b
.........c
.........d
Run Code Online (Sandbox Code Playgroud)
我想要做的是:我想在数组中存储目录的元素
就像是 : array = ls /home/user/DIRECTORY
所以array[0]
包含第一个文件的名称(即'a')
array[1] == 'b'
等等
感谢帮助