ssh $ipaddress /bin/bash <<END
do stuff here . . .
and here . . .
END
-121--228260- cd $(dirname $(which go))
, которые идут
, покажут путь к исполняемому файлу. Затем получите dirname
этого пути и cd
.
Однако удалить символ новой строки из строки можно с помощью tr -d '\n '
:
$ echo -e "Hello"
Hello
$ echo -e "Hello" | tr -d '\n'
Hello$
Удалить символ новой строки в конце файла можно следующим простым способом:
head -c -1 file
Из man head
:
-c, -bytes = [-] k
печатают первые K байт каждого файла; с ведущим "" - "",
распечатать все, кроме последних K байт каждого файла
усечение -s -1 файл
от man усечение
:
-s, --size = SIZE
задать или скорректировать размер файла по РАЗМЕРУ
SIZE - целое число и необязательная единица измерения (например, 10M - это 10 * 1024 * 1024).
Единицы измерения - K, M, G, T, P, E, Z, Y (мощности 1024) или KB, MB,... (полномочия 1000).
SIZE также может иметь префикс одного из следующих модифицирующих символов:
'+' простираются, '-' уменьшают, '<' самое большее, '>', по крайней мере, '/' округляют в меньшую сторону к нескольким из, '%' окружают к нескольким из.
Двойник *
распадается на эффект единицы *
, когда он не ограничивается (только)/
:
$ ls *c
abc ac acc bc cc dc
$ ls **c
abc ac acc bc cc dc
Любой начальный или конечный символ, который не является /
, вызывает **
затухание:
Это просто потому, что имя пути (как имя файла )не может не содержать какие-либо /
. *
невозможно расширить до имени, содержащего /
. **
в чем-то похож, он будет расширяться до строк, содержащих /
, только , когда он один или ограничен /
(, а не каким-либо другим символом/строкой):
$ ls -d./** | sort
./
./1
./1/2
./1/2/3
./1/2/3/4
./1/2/3/4/string
./1/2/3/string
./1/2/string
./1/string
./abc
./ac
./acc
./bc
./cc
./dc
./string
$ ls -d./**c | sort
./abc
./ac
./acc
./bc
./cc
./dc
$ ls -d ** | sort
1
1/2
1/2/3
1/2/3/4
1/2/3/4/string
1/2/3/string
1/2/string
1/string
abc
ac
acc
bc
cc
dc
string
$ ls -d **c | sort
abc
ac
acc
bc
cc
dc
$ ls -d **/ | sort
1/
1/2/
1/2/3/
1/2/3/4/
$ ls -d 1**/ | sort
1/