rhl*_*lee 3 shell command-line-arguments
如果我有一个文件列表说file1... file20,如何运行以文件列表作为参数的命令,例如myccommand file1 file2 ... file20?
如果您的列表在参数向量中-也就是说,如果您是从以下位置开始的:
./yourscript file1 file2 ...
Run Code Online (Sandbox Code Playgroud)
那你就跑
mycommand "$@"
Run Code Online (Sandbox Code Playgroud)
如果列表在数组中:
mycommand "${my_list_of_files[@]}"
Run Code Online (Sandbox Code Playgroud)
如果您的列表位于以NUL分隔的文件中:
xargs -0 -- mycommand <file_with_argument_list
Run Code Online (Sandbox Code Playgroud)
如果您的列表位于以换行符分隔的文件中(由于文件名可以合法包含换行符,所以您永远不要对文件名执行此操作):
readarray -t filenames <file_with_argument_list
mycommand "${filenames[@]}"
Run Code Online (Sandbox Code Playgroud)
如果按“列表”,则仅表示您具有一系列文件:
mycommand file{1..20}
Run Code Online (Sandbox Code Playgroud)