繁体   English   中英

linux shell脚本:从用户输入字符串获取文件名

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM