参见英文答案 > How do I parse command line arguments in Bash? 31个
所以我的问题是如何使用Linux中的终端命令将文件参数传递给我的bash脚本?
目前我正在尝试在bash中创建一个程序,该程序可以从终端获取文件参数并将其用作程序中的变量.比如我跑
myprogram –file = / path / to / file in Terminal.
我的计划
#!/bin/bash
File=(the path from the argument)
externalprogram $File (other parameters)
如何通过我的程序实现这一目标?
解决方法:
如果你只是运行你的脚本,它会更容易(并且更“正确”,见下文)
myprogram /path/to/file
然后你可以访问脚本中的路径为$1(对于参数#1,类似地$2是参数#2,等等)
file="$1"
externalprogram "$file" [other parameters]
要不就
externalprogram "$1" [otherparameters]
如果要从–file = / path / to / file之类的路径中提取路径,通常使用getopts shell函数完成.但这比引用$1更复杂,此外,像–file =这样的开关是可选的.我猜你的脚本需要提供一个文件名,所以在一个选项中传递它是没有意义的.