【发布时间】:2020-11-26 08:14:04
【问题描述】:
function install(){
V1=version1
V2=version2
DIR=folder
echo "Select version by number to download ${reset}:"
echo "$V1"
echo "$V2"
read version
case $version in
1) if [[ ! -d $DIR/$V1 ]];
then echo "Creating $DIR/$V1 folder."
mkdir -p $DIR
else
echo "$DIR/$V1 Folder exists"
fi
2) if [[ ! -d $DIR/$V2 ]];
then echo "Creating $DIR/$V2 folder."
mkdir -p $DIR/$V2
else
echo "$DIR/$V2 Folder exists"
fi
}
opt=$1
case $opt in
--install | -i) install ;;
*) echo "Exit"
exit ;;
esac
现在case $version 中唯一改变的是变量$V[1-2]
我如何阅读模板并将其放入其中?
我试过了:
lines=('if [[ ! -d $DIR/$V0 ]];
then echo "Creating $DIR/$V0 folder."
mkdir -p $DIR
else
echo "$DIR/$V0 Folder exists"
fi')
然后
1) $(lines | sed -e "s/\&V0/\$V1/g")
但这没有用。有任何想法吗?任何帮助表示赞赏!谢谢!
编辑:很抱歉,但在阅读了答案后,我很遗憾我不够清楚。我要求的主要部分是:
- 我有一条带有“if then else”条件的文本
- 那个应该作为模板放在某个地方。
- 然后应该读取这个模板并且应该用正确的变量交换变量。
- 这样我只有一个脚本,只需通过 sed 将其放入“案例”中,只需稍加修改即可重复使用。
这可能吗?
【问题讨论】:
-
“transclude”是什么意思?
-
对不起,我真的尽力让它尽可能小。
-
@Bramar 和 Shawn 谢谢!但我最好创建一个更具体的新帖子。这里最好的行为是什么?我应该删除这个还是应该保留它?
标签: bash