这应该是一个简单的答案,但我还没有找到一个简单的解决方案。我试图创建一个运行reindent.py工具脚本的bash脚本,但我希望能够获得用户输入是否要将文件写回磁盘。基本上我想输入reindent_python -n FILE_PATH
或reindent_python FILE_PATH
。到目前为止,我得到了以下内容:
function reindent_python () {
if ["$1" = "n"]; then
./reindent.py -n $2
else
./reindent.py $2
fi
}
由于这是我的第一个shell脚本,我不知道如何判断第一个参数是否为-n且是$1
n参数和$2
FILE_PATH?我如何创建这个脚本?
谢谢!
答案 0 :(得分:2)
首先,你展示的是一个功能,而不是一个脚本。您的功能可以简单如下:
function reindent_python () {
./reindent.py "$@"
}
鉴于您的Python脚本似乎采用与您的函数相同的参数。您可以使用上面的构造将它们全部传递给Python脚本。
正如@CharlesDuffy在评论中提到的那样,function
关键字不是必需的:
reindent_python () {
./reindent.py "$@"
}
除此之外,if
部分应为
[ "$1" = "-n" ];
括号周围有空格,n
之前有短划线。
答案 1 :(得分:1)
您非常接近,只需添加-
即可。字符串比较简单,没有其他处理,它不会为你删除连字符。
function reindent_python () {
if [ "$1" = "-n" ]; then
./reindent.py -n "$2"
else
./reindent.py "$2"
fi
}
或在调用函数时将其删除:
reindent_python n FILE_PATH