Bash 脚本:如何使用目录和文件名打开 Kate?
Bash Scripting: How to open Kate with directory and filename?
我对 Bash 脚本编写完全陌生,所以在我尝试描述它时对我很陌生。
我想要做的是能够插入两个参数。
Arg1=文档中的子文件夹
Arg2=文本文件的标题
使用 Ubuntu 20.10。 (如果这很重要)
简而言之:kate ~/Documents/$Arg1/$Arg2 等同于我在终端中输入的命令。
额外的问题是子文件夹有一个关键字快捷方式。例如,子文件夹的名称为 SUPERLONGNAME_EXTRALONG,但我想要一个快捷方式,例如 SHORTNAME=SUPERLONGNAME_EXTRALONG
#!/bin/sh
newfile()
dirname=
filename=
if $dirname==dir1
dirname=newdirname
fi
kate ~/Documents/$dirname/$filename
这就是我现在的基本情况。虽然正如您所猜测的那样,这是行不通的。 (提供帮助以了解我正在尝试做什么)。我可以使用我选择的文件名在主目录中打开 kate。我真正的问题似乎是创建快捷方式关键字。以及将文件保存到 Document/Arg1 目录。请帮忙。
I 运行 通过终端使用的命令
sh newfile arg1 arg2
使用关联数组短名称可选择地从长名称转换为短名称。验证文件和目录是否存在:
#!/bin/bash
declare -A shortnames=(
[long]="short"
)
d=
f=
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"
我对 Bash 脚本编写完全陌生,所以在我尝试描述它时对我很陌生。 我想要做的是能够插入两个参数。 Arg1=文档中的子文件夹 Arg2=文本文件的标题
使用 Ubuntu 20.10。 (如果这很重要) 简而言之:kate ~/Documents/$Arg1/$Arg2 等同于我在终端中输入的命令。
额外的问题是子文件夹有一个关键字快捷方式。例如,子文件夹的名称为 SUPERLONGNAME_EXTRALONG,但我想要一个快捷方式,例如 SHORTNAME=SUPERLONGNAME_EXTRALONG
#!/bin/sh
newfile()
dirname=
filename=
if $dirname==dir1
dirname=newdirname
fi
kate ~/Documents/$dirname/$filename
这就是我现在的基本情况。虽然正如您所猜测的那样,这是行不通的。 (提供帮助以了解我正在尝试做什么)。我可以使用我选择的文件名在主目录中打开 kate。我真正的问题似乎是创建快捷方式关键字。以及将文件保存到 Document/Arg1 目录。请帮忙。
I 运行 通过终端使用的命令
sh newfile arg1 arg2
使用关联数组短名称可选择地从长名称转换为短名称。验证文件和目录是否存在:
#!/bin/bash
declare -A shortnames=(
[long]="short"
)
d=
f=
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"