如果... else ..我需要一个句子来验证在bash中是否指定了字符串的文件名
for j in `ls `
do
if [ "${j:(-3)}" == ".gz" ]; then
Cmd="zcat"
elif [ "${j:(-4)}" == ".bz2" ]; then
Cmd="bzcat"
else
Cmd="cat"
fi
if [ $j ***contains*** "string1"]; then
$cmd $j | awk -F"," '{print $4}'
elif [ $j *contains* "string2" ]; then
$cmd $j | awk -F"," '{print $2}'
fi
done
Run Code Online (Sandbox Code Playgroud)
使用支持通配符的双括号:
if [[ $j == *string1* ]]; then
Run Code Online (Sandbox Code Playgroud)
另外,不要解析ls ; 使用glob代替:
代替
for j in `ls `
Run Code Online (Sandbox Code Playgroud)
使用
for j in *
Run Code Online (Sandbox Code Playgroud)
如果您不希望匹配不区分大小写,则可以设置shopt -s nocasematch选项:
shopt -s nocasematch
if [[ $j == *string1* ]]; then
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2677 次 |
| 最近记录: |