猿问

关于filename=${fileuser:-"filename"} 请问这句话是什么意思?求解!

#!/bin/bash

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

# 1. 让使用者输入档案名称,并取得 fileuser 这个变数;
echo -e "I will use 'touch' command to create 3 files." # 纯粹显示资讯
read -p "Please input your filename: " fileuser # 提示使用者输入

# 2. 为了避免使用者随意按 Enter ,利用变数功能分析档名是否有设定?
filename=${fileuser:-"filename"} # 开始判断有否设定档名

# 3. 开始利用 date 指令来取得所需要的档名了;
date1=$(date --date='2 days ago' +%Y%m%d) # 前两天的日期
date2=$(date --date='1 days ago' +%Y%m%d) # 前一天的日期
date3=$(date +%Y%m%d) # 今天的日期
file1=${filename}${date1} # 底下三行在设定档名
file2=${filename}${date2}
file3=${filename}${date3}

# 4. 将档名建立吧!
touch "$file1" # 底下三行在建立档案
touch "$file2"
touch "$file3"

ITMISS
浏览 544回答 1
1回答

郎朗坤

filename=${fileuser:-"filename"}等号右边的意思是,若变量 fileuser 为空(此前没有得到赋值),则返回 "filename"。若变量 fileuser 有值,则返回其当前值。这是bash中的特有用法,为了确保变量filename无论如何都能得到赋值。
随时随地看视频慕课网APP
我要回答