bash - 如何编辑这些自定义终端命令来解决我的问题?
问题描述
我试图在终端中编译fortran1.f95
文件~/
夹中的文件,因此我运行了gfortran -x f95 -o fortran1 ~/fortran1.f95
. 我做了几个终端alias
,这里有:
alias e1f95c="gfortran -x f95 -o fortran1 ~/fortran1.f95"
alias e1f95cr="gfortran -x f95 -o fortran1 ~/fortran1.f95; open ~/fortran1"
alias e1f95e="open ~/fortran1.f95"
alias e1f95r="open ~/fortran1"
我写e1
来代表'exercise1',f95
代表编译语言规范并c, r, cr, e
代表'编译,运行,编译和运行,编辑'。
这是我的问题:我不知道如何为何时添加更多文件创建一个灵活的别名,例如,当我创建一个名为fortran2
我想运行e2f95cr
并获得相同结果的新文件时。
我尝试了什么:发现有一个名为的文件.bashrc
,可以将其编码为我想做的事情,但是我找不到它,并且打开它后不知道如何继续。
非常感谢您的阅读。
解决方案
该.bashrc
文件位于您的主目录中。试试ls -la ~
——如果你没有看到它,那是因为它不存在,所以创建一个就可以了。
在某些情况下,bash 不会处理该文件,因此您可以将此行放在您的~/.bash_profile
or中~/.profile
(无论哪个存在)
[[ -r ~/.bashrc ]] && . ~/.bashrc
现在,关于您的别名问题:我可能会做这样的事情
# a function
do_f95() {
local action=$1 exercise=$2
if [[ -z $exercise ]]; then
echo "error: specify the exercise number" >&2
echo "usage: $FUNCNAME action exerciseNum" >&2
return 1
fi
local filebase="$HOME/fortran${exercise}"
local compile=false run=false
case "$action" in
e) open "$filebase.f95"; return ;;
c) compile=true ;;
r) run=true ;;
cr) compile=true; run=true ;;
*) echo "error: unknown action" >&2; return 1 ;;
esac
$compile && gfortran -x f95 -o "$filebase" "$filebase.f95"
$run && open "$filebase"
}
# some aliases
alias fc='do_f95 c'
alias fcr='do_f95 cr'
alias fr='do_f95 r'
alias fe='do_f95 e'
然后你会像这样使用它:
fe 1 # to edit ~/fortran1.f95
fc 1 # to compile it
fr 1 # to run it
您可以指定任何练习编号,它将使用适当的~/fortranN.f95
文件
推荐阅读
- reactjs - React redux 对同一操作的多次调用仅触发 reducer 一次
- c++ - C ++ for循环查找“给定数字的数字总和”
- css - 如何在chartjs [角度]中在图表底部添加空间
- machine-learning - 为什么 xgboost 树的相同路径会给出 2 个不同的预测?
- swift - 一种访问城市名称列表的方法 (OpenWeatherMap)
- flutter - 如何在颤动中更改卡片的宽度?
- c++ - Boost 无法用方括号验证 IPv6
- bash - 为什么交互式 kubectl bash 会话中缺少空格/换行符
- java - 在 log4j2 GelfLayout 中提供方法名称
- python-3.x - Python-Pandas:我想要 groupby 用户和日期范围(-7)天