[英]linux shell script: getting filename from a user input string
我想编写一个shell脚本,在其中我将从用户那里获取一行输入,其中将包含一些xxx.cpp作为文件名。 我想在另一个变量中获取“ xxx”。 例如
如果用户输入为:
some params path/to/file/xyz.cpp more p/ara/ms
我想得到出现在“ .cpp”之前和“。”最后出现在“ .cpp”之前的xyz
使用basename [param] [.ext]
。
echo `basename $1 .cpp`
其中1是参数列表中path/to/file.xyz
的索引。
这是一个示例bash脚本,用于提示用户输入文件列表并过滤所有输入,并仅显示以'.cpp'结尾(已删除.cpp)的文件的基本名称。
#!/bin/bash
echo Enter list of files:
read list_of_files
for file in $(echo $list_of_files); do
if echo $file | grep '\.cpp$' > /dev/null; then
if [[ -r $file ]]; then
fn=$(basename ${file})
fn=${fn%.*}
echo $fn
fi
fi
done
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.