问题描述
我对 Bash 脚本完全陌生,所以在我尝试描述这一点时,我很无所事事。 我想做的是能够插入两个参数。 Arg1=文档中的子文件夹 Arg2=文本文件的标题
使用 Ubuntu 20.10。 (如果这很重要) 简而言之:kate ~/Documents/$Arg1/$Arg2 相当于我输入终端的命令。
额外的问题是子文件夹的关键字快捷方式。例如,假设子文件夹名为 SUPERLONGNAME_EXTRALONG,但我想要一个快捷方式,例如 SHORTNAME=SUPERLONGNAME_EXTRALONG
#!/bin/sh
newfile()
dirname=$1
filename=$2
if $dirname==dir1
dirname=newdirname
fi
kate ~/Documents/$dirname/$filename
这基本上就是我现在所拥有的。尽管正如您所猜测的那样,这行不通。 (提供帮助以了解我正在尝试做什么)。我可以使用我选择的文件名在主目录中打开 kate。我真正的问题似乎是创建快捷方式关键字。以及将文件保存到 Document/Arg1 目录。请帮忙。
我通过终端运行命令使用
sh newfile arg1 arg2
解决方法
使用关联数组短名称可选择将长名称转换为短名称。验证文件和目录是否存在:
#!/bin/bash
declare -A shortnames=(
[long]="short"
)
d=$1
f=$2
if [ -z "$d" ]
then
echo directory required
exit 1
fi
if [ -n "${shortnames[$d]}" ]
then
d=${shortnames[$d]}
fi
d=~/Documents/$d
if [ ! -d "$d" ]
then
echo "directory $d does not exist"
exit 1
fi
if [ -z "$f" ]
then
echo file required
exit 1
fi
kate "$d/$f"