Как мне отредактировать эти пользовательские команды терминала, чтобы решить мою проблему? - PullRequest
0 голосов
/ 16 марта 2019

Я пытался скомпилировать в терминале мой файл 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 для представления'учи1 ', f95 для представления спецификации языка компиляции и c, r, cr, e для представления'компилировать, запускать, компилировать и запускать, редактировать '.

Вот моя проблема: я не знаю, как создать гибкий псевдоним для случая, когда я добавлю больше файлов, например, когда я создаю новый файл с именем fortran2 Я хотел бы запустить e2f95cr и получить тот же результат.

То, что я пробовал: обнаружил, что есть файл с именем .bashrc, который может быть сорта может быть закодирован для выполнения того, что я хотел бы,но я не могу его найти и не знаю, как поступить, когда открою его.

Большое спасибо за чтение.

1 Ответ

0 голосов
/ 17 марта 2019

Файл .bashrc находится в вашем домашнем каталоге. Попробуйте ls -la ~ - если вы не видите его там, это потому, что он не существует, поэтому все в порядке, чтобы создать его.

В некоторых случаях bash не будет обрабатывать этот файл, так что вы можете поместить эту строку в ~/.bash_profile или ~/.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 файл

...