0

我有一个 curl 脚本,其中 URL 中的变量之一实际上是 .sh 文件的名称。

所以,如果文件名是 test.sh 那么在脚本中我想要 curl www.example.com/test 它会从文件名中获取“测试”。

我可以通过使用我在这里看到的答案组合来获得实际名称:我如何知道 Bash 脚本中的脚本文件名?.

但是,作为新手,我不确定它应该如何格式化,特别是如何输出变量。

将不胜感激任何帮助

4

2 回答 2

0

对于您的示例:

# The name of the executable (with the .sh removed if it's there)
SCRIPT_NAME=`basename $0 .sh`

# Put the entire argument in quotes in case SCRIPT_NAME has a space in it.
# The curly braces aren't strictly necessary, but ensure that if you need to
# put anything immediately after, like "_test", it's not treated as part of the
# variable name.
curl "www.example.com/${SCRIPT_NAME}"

有关如何使用变量的示例,请参见此处的示例 5.1 ,或此处的第 3.2.2 节以获得更深入的描述。

于 2013-08-22T00:22:16.807 回答
0

如果我理解正确

对于 test.sh

#!/bin/bash
name=${s/"$(basename $0)"/".sh"}  #ie name of scipt, no path, .sh removed
echo "DEBUG: $name"
curl "http://www.example.com/$name"
于 2013-08-22T00:32:38.943 回答