Bash 脚本:如何使用目录和文件名打开 Kate?

问题描述

我对 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"