我有一个 curl 脚本,其中 URL 中的变量之一实际上是 .sh 文件的名称。
所以,如果文件名是 test.sh 那么在脚本中我想要 curl www.example.com/test 它会从文件名中获取“测试”。
我可以通过使用我在这里看到的答案组合来获得实际名称:我如何知道 Bash 脚本中的脚本文件名?.
但是,作为新手,我不确定它应该如何格式化,特别是如何输出变量。
将不胜感激任何帮助
我有一个 curl 脚本,其中 URL 中的变量之一实际上是 .sh 文件的名称。
所以,如果文件名是 test.sh 那么在脚本中我想要 curl www.example.com/test 它会从文件名中获取“测试”。
我可以通过使用我在这里看到的答案组合来获得实际名称:我如何知道 Bash 脚本中的脚本文件名?.
但是,作为新手,我不确定它应该如何格式化,特别是如何输出变量。
将不胜感激任何帮助
对于您的示例:
# 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 节以获得更深入的描述。
如果我理解正确
对于 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"