Эта функция оболочки будет делать то, что вы спрашиваете:
vim() { bash script1.sh <"$1" >"$1.hide~"; /usr/bin/vim "$1.hide~"; bash script2.sh <"$1.hide~"; }
Используйте эту функцию следующим образом:
vim file
Разбивайте его на куски:
Bash Script1.sh <«$ 1»> 1. Хейд ~ "
$ 1
- это первый аргумент, который вы поставляете в сценарий, который должен быть именем файла. Это работает Script1.sh
с этим файлом на его stdin и записывает вывод во временный файл.
/ USR / BIN / VIM "$ 1. HIDE ~"
Это запускается реальным VIM
на выходе Script1.sh
.
Это предполагает, что редактор VIM
в вашей системе находится в / usr / bin
. Если он находится где-то еще, настройте определение функции соответствующим образом.
Bash Script2.sh <«$ 1.hide ~»
Это обеспечивает отредактированный файл в виде STDIN для Script2.SH
.
Чтобы сделать это определение функции постоянно, поместите его в качестве отдельной строки в вашем файле ~ / .bashrc
.
Синтаксис find -exec:
find … -exec command {} \;
вместо этого вы получили ;
вместо -exec
, и вам нужен пробел между {}
и \;
.
Наконец, ваш режим, эээ, неправильный. Может быть, вы хотели u =, a + wx
- удалить все разрешения для владельца, а затем дать всем возможность писать и выполнять? В результате получается -wx-wx-wx
, нечетный набор разрешений. Понятия не имею, какие разрешения вы намеревались.