相关疑难解决方法(0)

访问bash命令行args $ @ vs $*

在许多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)

$*和之间有什么区别$@
应该何时使用前者,何时使用后者?

bash command-line-arguments

298
推荐指数
4
解决办法
18万
查看次数

Bash中"$ @"和"$*"有什么区别?

在我看来,它们都存储了所有命令行参数.

两者之间有区别吗?

variables bash command-line-arguments

65
推荐指数
2
解决办法
3万
查看次数

shell脚本中的$ @和$*有什么区别?

在shell脚本中,$@和之间有什么区别$*

获取脚本参数的首选方法是哪一种?

不同的shell解释器之间是否存在差异?

shell scripting

52
推荐指数
2
解决办法
2万
查看次数

shell脚本中$ @和$*有什么区别?

在我的script.sh:

aa=$@
bb=$*
echo $aa
echo $bb
Run Code Online (Sandbox Code Playgroud)

运行时:

 source script.sh a b c d e f g
Run Code Online (Sandbox Code Playgroud)

我明白了:

a b c d e f g
a b c d e f g
Run Code Online (Sandbox Code Playgroud)

$@和之间有什么区别$*

linux bash shell

5
推荐指数
1
解决办法
2万
查看次数

bash脚本中的$ @和$*之间的差异

我是bash的新手,我正在学习它,而且我怀疑使用$@和之间的真正区别S*.

我在这里红色Bash特殊参数

我知道两者都扩展到位置参数,但差异发生在双引号内.顺便说一句"$@" = "$1" "$2"..."$n"可能不同于"S*" = "$1$2...$n".

我尝试用一​​个简单的脚本来理解它:

if [ $# -gt 0 ]; then
       echo "Your command line contains $# arguments" 
else
       echo "Your command line contains no arguments"
       exit  fi

echo "Params are: "
echo $@  
echo $* 
echo "$@"    
echo "$*"
Run Code Online (Sandbox Code Playgroud)

如果我像这样在终端中执行我的脚本 ~./my_script par1 par2 par3

结果总是一样的:

Params are:
par1 par2 par3
par1 par2 par3
par1 par2 par3
par1 par2 par3
Run Code Online (Sandbox Code Playgroud)

也许我不明白这两个特殊变量的实际用途以及我的例子是否正确.我想用一个很好的例子来弄清楚这一点.

bash

5
推荐指数
1
解决办法
936
查看次数

如何通过Telegraf监控目录的大小

我们需要监视目录的大小(例如InfluxDB的数据目录)以在Grafana中设置警报.如上所述:如何配置telegraf将文件夹大小发送到InfluxDB,没有内置的插件.

我们不介意使用inputs.execTelegraf 的部分.目录不是很大(低文件数+ dircount),所以深度扫描(如使用du)对我们来说很好.

我们需要监控的目录之一是/var/lib/influxdb/data.

什么是一个简单的脚本来执行,有什么警告?

du telegraf

3
推荐指数
3
解决办法
2598
查看次数