如何获取和比较Bash函数参数?
How to get and compare Bash Function parameters?
这应该是一个简单的答案,但我一直未能找到简单的解决方案。我正在尝试创建一个运行 reindent.py 工具脚本的 bash 脚本,但我希望能够让用户输入他是否想将文件写回磁盘。基本上我想输入 reindent_python -n FILE_PATH
或 reindent_python FILE_PATH
。到目前为止,我得到了以下信息:
function reindent_python () {
if ["" = "n"]; then
./reindent.py -n
else
./reindent.py
fi
}
因为这是我的第一个 shell 脚本,所以我不确定如何获取第一个参数是否为 -n 并且 </code> n 参数和 <code>
the FILE_PATH?我将如何创建此脚本?
谢谢!
首先,你显示的是函数,不是脚本。您的函数可以像这样简单:
function reindent_python () {
./reindent.py "$@"
}
考虑到您的 Python 脚本似乎采用与您的函数相同的参数。您可以使用上述结构将它们全部传递给 Python 脚本。
正如@CharlesDuffy 在评论中提到的,function
关键字不是必需的:
reindent_python () {
./reindent.py "$@"
}
除此之外,if
部分应该是
[ "" = "-n" ];
括号内有 space,n
前有破折号。
你很接近,只需添加 -
。字符串比较很简单,不做任何其他处理,它不会为您删除连字符。
function reindent_python () {
if [ "" = "-n" ]; then
./reindent.py -n ""
else
./reindent.py ""
fi
}
或者调用函数时去掉:
reindent_python n FILE_PATH
这应该是一个简单的答案,但我一直未能找到简单的解决方案。我正在尝试创建一个运行 reindent.py 工具脚本的 bash 脚本,但我希望能够让用户输入他是否想将文件写回磁盘。基本上我想输入 reindent_python -n FILE_PATH
或 reindent_python FILE_PATH
。到目前为止,我得到了以下信息:
function reindent_python () {
if ["" = "n"]; then
./reindent.py -n
else
./reindent.py
fi
}
因为这是我的第一个 shell 脚本,所以我不确定如何获取第一个参数是否为 -n 并且 </code> n 参数和 <code>
the FILE_PATH?我将如何创建此脚本?
谢谢!
首先,你显示的是函数,不是脚本。您的函数可以像这样简单:
function reindent_python () {
./reindent.py "$@"
}
考虑到您的 Python 脚本似乎采用与您的函数相同的参数。您可以使用上述结构将它们全部传递给 Python 脚本。
正如@CharlesDuffy 在评论中提到的,function
关键字不是必需的:
reindent_python () {
./reindent.py "$@"
}
除此之外,if
部分应该是
[ "" = "-n" ];
括号内有 space,n
前有破折号。
你很接近,只需添加 -
。字符串比较很简单,不做任何其他处理,它不会为您删除连字符。
function reindent_python () {
if [ "" = "-n" ]; then
./reindent.py -n ""
else
./reindent.py ""
fi
}
或者调用函数时去掉:
reindent_python n FILE_PATH