Использование в качестве стандартного каталога, отличного от / usr

date принимает ввод со своим флагом -d и печатает его. Однако ввод, отформатированный как ваш, обрабатывается как ММ / ДД / ГГГГ. Но это не должно быть слишком сложно.

Сначала давайте введем переменную:

read INPUT

Теперь нам нужно изменить ввод с ДД / ММ / ГГГГ на ММ / ДД / ГГГГ. Вы можете сделать это с помощью sed и awk (вы также можете сделать это с помощью awk :

INPUT=`echo $INPUT | awk -F '/' '{t=$1;$1=$2;$2=t;gsub(" ", "/");print;}'`

Теперь, когда INPUT находится в правильном формате, скормите его до date и заставьте его печатать только day:

date -d $INPUT +%A

Сложите все вместе:

#!/bin/bash
read INPUT
INPUT=`echo $INPUT | awk -F '/' '{t=$1;$1=$2;$2=t;gsub(" ", "/");print;}'`
date -d $INPUT +%A
1
15.12.2018, 14:25
2 ответа

Да, можно установить программное обеспечение в каталоги, отличные от /usr.

Одним из примеров (системы -ширины )является /usr/local. (Который все еще может не помочь вам напрямую, так как ваш /usrдоступен только для чтения -. )Каталог /usr/localсоответствует /usrпо своей структуре (имеет /bin, /libи т. д. )В большинстве случаев он используется для различения пакетов, поставляемых как часть вашей базовой ОС. (, которые перейдут в/usr)из тех, что установлены из исходников системным администратором (, которые перейдут в /usr/local.)

Существует также /opt, который предназначен для установки пакетов в отдельные -каталоги пакетов. Так, например, вы можете установить туда Perl 6 под /opt/perl6, и это будет содержать только Perl и ничего больше. Вы должны хранить отдельные каталоги для отдельных пакетов, что обычно позволяет легко «удалить» пакет, просто удалив его каталог. Обычно вам нужно установить $PATHсоответствующим образом, чтобы получить доступ к установленным там программам, или создать символические ссылки в каком-либо другом каталоге bin, который уже находится в $PATH, чтобы получить к ним доступ. Управление /optобычно предназначено для администратора, и, учитывая, что вам нужно обновлять $PATHдля каждого устанавливаемого вами пакета, это может быть не лучшим вариантом...

Для установки программного обеспечения в каталог $HOMEодним из возможных подходов является создание в его верхней части подкаталога .localи соответствие иерархии /usrили /usr/local.

Так что, может, попробуй так:

mkdir ~/.local

А затем используйте его как --prefixпри установке нового пакета. Например,если пакет использует сценарий конфигурации в стиле autoconf -, вы можете собрать и установить его, используя:

./configure --prefix="$HOME/.local"
make
make install

Вам нужно добавить ~/.localк вашему $PATH, чтобы иметь доступ к программам там. Так что сделайте это в своем~/.bashrc:

PATH=$HOME/.local:$PATH
export PATH

Откройте новую оболочку (новый терминал или выйдите из системы и войдите снова ), чтобы изменения вступили в силу. Или просто запустите ту же команду в существующей оболочке. Теперь вы сможете выполнять программы из ~/.local/binнапрямую.

2
27.01.2020, 23:12

Возможно, Endless OSне является подходящим инструментом для достижения желаемого. Со страницы Endless OS Developer ,

Endless OS

Not your typical Linux distribution. We don’t use rpm, apt, or any other packaging system. We use a read-only root file system managed by OSTree with application bundles overlaid on top. We have a different target user. Most desktop Linux distributions are oriented towards tech-savvy users and developers. Simplicity is the key, so we carefully pick and choose the best applications available for our users. A number of core technologies underlie our OS, in particular the Linux kernel, OSTree, systemd, GNU, X, GNOME, and Xapian.

5
27.01.2020, 23:12

Теги

Похожие вопросы