GoGPT Best VPN GoSearch

Favicon di OnWorks

shposix - Online nel cloud

Esegui shposix nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online di Windows o emulatore online di MAC OS

Questo è il comando shposix che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre numerose workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online di Windows o emulatore online di MAC OS

PROGRAMMA:

NOME


sh — shell, l'interprete del linguaggio di comando standard

SINOSSI


sh [−abCefhimnuvx] [-o opzione]... [+abCefhimnuvx] [+o opzione]...
[file_comando [argomento...]]

sh −c [−abCefhimnuvx] [-o opzione]... [+abCefhimnuvx] [+o opzione]...
stringa_comando [nome_comando [argomento...]]

sh −s [−abCefhimnuvx] [-o opzione]... [+abCefhimnuvx] [+o opzione]...
[argomento...]

DESCRIZIONE


. sh L'utilità è un interprete del linguaggio di comando che deve eseguire i comandi letti da un
stringa della riga di comando, l'input standard o un file specificato. L'applicazione deve garantire
che i comandi da eseguire siano espressi nel linguaggio descritto in Capitolo 2,
Conchiglia Comando Lingua.

L'espansione del percorso non deve fallire a causa delle dimensioni di un file.

I reindirizzamenti di input e output della shell hanno un offset massimo definito dall'implementazione che è
stabilito nella descrizione del file aperto.

VERSIONI


. sh l'utilità deve essere conforme al volume delle definizioni di base di POSIX.1‐2008, Sezione 12.2,
Utilità Sintassi Linee Guida, con un'estensione per il supporto di un leader ('+') come
indicato di seguito.

. -a, -b, -C, -e, -f, -m, -n, -o opzione, -u, -ve -x le opzioni sono descritte come parte di
, il set utilità in Sezione 2.14, Special Built-In Elettricita, Gas Ed AcquaLe lettere di opzione derivate
dal set anche gli speciali integrati devono essere accettati con un leader ('+')
invece di un leader (intendendo il caso inverso dell'opzione descritta in questo
volume di POSIX.1‐2008).

Saranno supportate le seguenti opzioni aggiuntive:

-c Leggi i comandi dal stringa_comando operando. Imposta il valore di speciale
parametro 0 (vedi Sezione 2.5.2, Special Scheda Sintetica) dal valore del
nome_comando operando e i parametri posizionali ($1, $2 e così via) in
sequenza dal rimanente argomento operandi. Nessun comando deve essere letto da
l'ingresso standard.

-i Specificare che la shell è interattivo; vedi sotto. Un'implementazione può trattare
specificando il -i opzione come errore se l'ID utente reale del processo chiamante
non è uguale all'ID utente effettivo o se l'ID del gruppo reale non è uguale a
ID gruppo effettivo.

-s Legge i comandi dall'input standard.

Se non ci sono operandi e il -c opzione non è specificata, il -s l'opzione deve essere
presunto.

Se l' -i l'opzione è presente, o se non ci sono operandi e l'input standard della shell
e l'errore standard sono collegati a un terminale, la shell è considerata interattivo.

OPERANDI


Devono essere supportati i seguenti operandi:

− Un singolo deve essere trattato come il primo operando e quindi ignorato. Se
entrambi '-' e "--" sono forniti come argomenti, o se altri operandi precedono il
separare , i risultati non sono definiti.

argomento I parametri posizionali ($1, $2 e così via) devono essere impostati su argomenti, se presente.

file_comando
Il percorso di un file contenente comandi. Se il percorso contiene uno o più
caratteri, l'implementazione tenta di leggere quel file; il file ha bisogno
non essere eseguibile. Se il percorso non contiene un carattere:

* L'implementazione tenterà di leggere quel file dall'attuale lavoro
directory; il file non deve essere necessariamente eseguibile.

* Se il file non si trova nella directory di lavoro corrente, l'implementazione potrebbe
eseguire una ricerca di un file eseguibile utilizzando il valore di PERCORSO, come
descritto in Sezione 2.9.1.1, Comando Cerca e .

Parametro speciale 0 (vedere Sezione 2.5.2, Special Scheda Sintetica) deve essere impostato su
valore di file_comando. Se sh viene chiamato utilizzando una forma di sinossi che omette
file_comando, il parametro speciale 0 deve essere impostato sul valore del primo
argomento passato a sh dal suo genitore (ad esempio, arv[0] per un programma C),
che normalmente è un percorso utilizzato per eseguire il sh utilità.

nome_comando
Una stringa assegnata al parametro speciale 0 durante l'esecuzione dei comandi in
stringa_comando. Se nome_comando non è specificato, il parametro speciale 0 deve essere
impostato sul valore del primo argomento passato a sh dal suo genitore (per
esempio, arv[0] per un programma C), che normalmente è un percorso utilizzato per eseguire
, il sh utilità.

stringa_comando
Una stringa che deve essere interpretata dalla shell come uno o più comandi, come se
la stringa era l'argomento del sistema() funzione definita nel Sistema
Interfacce volume di POSIX.1‐2008. Se il stringa_comando l'operando è vuoto
stringa, sh uscirà con uno stato di uscita pari a zero.

STDIN


L'input standard deve essere utilizzato solo se una delle seguenti condizioni è vera:

* L' -s l'opzione è specificata.

* L' -c l'opzione non è specificata e non sono specificati operandi.

* Lo script esegue uno o più comandi che richiedono input dall'input standard (ad esempio
come read comando che non reindirizza il suo input).

Vedere la sezione FILE DI INGRESSO.

Quando la shell utilizza l'input standard e richiama un comando che utilizza anch'esso l'input standard
input, la shell deve garantire che il puntatore del file di input standard punti direttamente dopo
il comando che ha letto quando il comando inizia l'esecuzione. Non deve leggere in anticipo in tale
un modo in cui tutti i caratteri destinati ad essere letti dal comando invocato vengono consumati da
la shell (interpretata o meno dalla shell) o che i caratteri non vengono letti
dal comando invocato non vengono visti dalla shell. Quando il comando si aspetta di leggere
l'input standard viene avviato in modo asincrono da una shell interattiva, non è specificato
se i caratteri vengono letti dal comando o interpretati dalla shell.

Se l'input standard a sh è un FIFO o dispositivo terminale ed è impostato su letture non bloccanti,
poi sh deve abilitare le letture bloccanti sull'input standard. Questo rimarrà in vigore quando
il comando è completato.

INGRESSO FILE


Il file di input deve essere un file di testo, ad eccezione del fatto che le lunghezze delle righe devono essere illimitate. Se il
il file di input è vuoto o è costituito esclusivamente da righe vuote o commenti, o entrambi, sh deve uscire
con uno stato di uscita pari a zero.

AMBIENTE VARIABILI


Le seguenti variabili d'ambiente influiranno sull'esecuzione di sh:

ENV Questa variabile, quando e solo quando viene invocata una shell interattiva, deve essere
sottoposto ad espansione dei parametri (vedere Sezione 2.6.2, Parametro Espansione) dal
shell, e il valore risultante deve essere utilizzato come percorso di un file contenente
comandi shell da eseguire nell'ambiente corrente. Il file non deve essere
eseguibile. Se il valore espanso di ENV non è un percorso assoluto, il
i risultati non sono specificati. ENV deve essere ignorato se l'utente reale ed effettivo
Gli ID o gli ID di gruppo reali ed effettivi del processo sono diversi.

FCEDIT Questa variabile, quando espansa dalla shell, determina il valore predefinito per
, il -e editore opzioni editore opzione-argomento. Se FCEDIT è nullo o non impostato, ed
deve essere utilizzato come editore.

ARCHIVIO Determinare un percorso che nomina un file di cronologia dei comandi. Se la ARCHIVIO la variabile è
non impostato, la shell potrebbe tentare di accedere o creare un file .sh_storia nella
directory a cui si fa riferimento HOME variabile d'ambiente. Se il guscio non può
ottenere sia l'accesso in lettura che in scrittura o creare il file di cronologia, che utilizzerà
un meccanismo non specificato che consente alla cronologia di funzionare correttamente.
(I riferimenti alla cronologia ``file'' in questa sezione devono essere intesi come questo
meccanismo non specificato in tali casi.) Un'implementazione può scegliere di accedere
questa variabile solo durante l'inizializzazione del file di cronologia; questa inizializzazione deve
si verificano quando fc or sh primo tentativo di recuperare voci da, o aggiungere voci a,
il file, a seguito di comandi impartiti dall'utente, il file denominato dal
ENV variabile o file di avvio del sistema definiti dall'implementazione. Implementazioni
può scegliere di disabilitare il meccanismo dell'elenco cronologico per gli utenti con appropriate
privilegi che non impostano ARCHIVIO; le circostanze specifiche in cui questo
si verifica sono definiti dall'implementazione. Se più di un'istanza della shell è
utilizzando lo stesso file di cronologia, non è specificato come vengono aggiornati i file di cronologia
da quelle shell interagiscono. Quando le voci vengono eliminate dal file della cronologia,
verranno eliminate prima le più vecchie. Non è specificato quando le voci del file cronologico sono
fisicamente rimosso dal file cronologico.

HISTSIZE Determinare un numero decimale che rappresenti il ​​limite al numero di precedenti
comandi accessibili. Se questa variabile non è impostata, un valore predefinito non specificato
deve essere utilizzato un valore maggiore o uguale a 128. Il numero massimo di comandi in
l'elenco della cronologia non è specificato, ma deve essere almeno 128. Un'implementazione
può scegliere di accedere a questa variabile solo durante l'inizializzazione del file di cronologia, come
descritto sotto ARCHIVIO. Pertanto, non è specificato se le modifiche apportate a
HISTSIZE dopo che il file della cronologia è stato inizializzato sono effettive.

HOME Determina il percorso della directory home dell'utente. Il contenuto di HOME sono
utilizzato nell'espansione della tilde come descritto in Sezione 2.6.1, tilde Espansione.

IFS Una stringa trattata come un elenco di caratteri che viene utilizzata per la suddivisione dei campi e per
dividere le linee in campi con il read comando.

If IFS non è impostato, si comporterà normalmente per una variabile non impostata, tranne che
divisione del campo da parte della shell e divisione della linea da parte del read il comando sarà
eseguito come se il valore di IFS È ; Vedere Sezione 2.6.5,
Settore Scissione.

Le implementazioni possono ignorare il valore di IFS nell'ambiente, o l'assenza
of IFS dall'ambiente, al momento in cui viene richiamata la shell, nel qual caso il
la shell deve essere impostata IFS A quando viene invocato.

LUNGO Fornire un valore predefinito per le variabili di internazionalizzazione non impostate o
nullo. (Vedi il volume Definizioni di base di POSIX.1-2008, Sezione 8.2,
Internazionalizzazione Variabili per il primato dell'internazionalizzazione
variabili utilizzate per determinare i valori delle categorie locali.)

LC_TUTTI Se impostato su un valore di stringa non vuoto, sovrascrive i valori di tutti gli altri
variabili di internazionalizzazione.

LC_COLLATE
Determinare il comportamento delle espressioni di intervallo, delle classi di equivalenza e dei multi-
elementi di collazione dei caratteri all'interno del pattern matching.

LC_CTYPE Determinare la localizzazione per l'interpretazione di sequenze di byte di dati di testo
come caratteri (ad esempio, caratteri a byte singolo anziché caratteri multibyte in
argomenti e file di input), quali caratteri sono definiti come lettere (carattere
classe alfa) e il comportamento delle classi di caratteri all'interno del pattern matching.

LC_MESSAGGI
Determinare la localizzazione che dovrebbe essere usata per influenzare il formato e il contenuto di
messaggi di diagnostica scritti nell'errore standard.

MAIL Determinare un percorso del file della casella di posta dell'utente per la posta in arrivo
notifica. Se questa variabile è impostata, la shell informerà l'utente se la
il file denominato dalla variabile viene creato o se la sua data di modifica è cambiata.
L'informazione all'utente deve essere realizzata scrivendo una stringa di dati non specificati
formattare in errore standard prima della scrittura della successiva stringa di prompt primaria.
Tale controllo dovrà essere effettuato solo dopo il completamento dell'intervallo definito
dal CONTROLLO POSTA variabile dopo l'ultimo controllo di questo tipo. L'utente deve essere informato
solo se MAIL è impostato e PERCORSO POSTALE non è impostato.

CONTROLLO POSTA
Stabilire un valore intero decimale che specifica la frequenza (in secondi)
shell controllerà l'arrivo della posta nei file specificati dal PERCORSO POSTALE
or MAIL variabili. Il valore predefinito è 600 secondi. Se impostato su zero, il
la shell deve effettuare un controllo prima di emettere ogni prompt primario.

PERCORSO POSTALE Fornire un elenco di percorsi e messaggi facoltativi separati da
caratteri. Se questa variabile è impostata, la shell informerà l'utente se uno qualsiasi di
vengono creati i file nominati dalla variabile o se una qualsiasi delle loro modifiche
i tempi cambiano. (Vedi la voce precedente per MAIL per le descrizioni dell'arrivo della posta
e informando l'utente.) Ogni percorso può essere seguito da '%' e una stringa che
deve essere sottoposto all'espansione dei parametri e scritto nell'errore standard quando il
l'orario di modifica cambia. Se un '%' il carattere nel percorso è preceduto da un
, deve essere trattato come un letterale '%' nel percorso. Il valore predefinito
il messaggio non è specificato.

. PERCORSO POSTALE la variabile d'ambiente ha la precedenza su MAIL variabile.

NLSPATH Determinare la posizione dei cataloghi dei messaggi per l'elaborazione di LC_MESSAGGI.

PERCORSO Stabilire una stringa formattata come descritto nel volume Definizioni di base di
POSIX.1‐2008, Capitolo 8, Ambiente Variabili, utilizzato per effettuare il comando
interpretazione; vedi Sezione 2.9.1.1, Comando Cerca e .

PWD Questa variabile deve rappresentare un percorso assoluto del lavoro corrente
directory. Le assegnazioni a questa variabile possono essere ignorate.

ASINCRONO EVENTI


. sh l'utilità deve adottare l'azione standard per tutti i segnali (vedere Sezione 1.4, Utilità
Descrizione Impostazioni predefinite) con le seguenti eccezioni.

Se la shell è interattiva, i segnali SIGINT ricevuti durante la modifica della riga di comando devono essere
gestiti come descritto nella DESCRIZIONE ESTESA e segnali SIGINT ricevuti in altri
i tempi saranno rilevati ma non verrà eseguita alcuna azione.

Se la shell è interattiva:

* I segnali SIGQUIT e SIGTERM devono essere ignorati.

* Se la -m Se l'opzione è attiva, i segnali SIGTTIN, SIGTTOU e SIGTSTP verranno ignorati.

* Se la -m l'opzione non è in vigore, non è specificato se SIGTTIN, SIGTTOU e
I segnali SIGTSTP vengono ignorati, impostati sull'azione predefinita o intercettati. Se lo sono
catturato, il guscio deve, nella funzione di cattura del segnale, impostare il segnale su
azione predefinita e alzare il segnale (dopo aver preso tutte le misure appropriate, come
ripristino delle impostazioni del terminale).

Le azioni standard e le azioni descritte sopra per le shell interattive possono essere
sovrascritto dall'uso di trappola utilità integrata speciale (vedere trappola e Sezione 2.11, Segnali
e Errore Manovrabilità ).

STDOUT


Vedere la sezione STDERR.

Stderr


Salvo quanto diversamente specificato (nelle descrizioni di eventuali utilità invocate o nelle interazioni
modalità), l'errore standard deve essere utilizzato solo per i messaggi diagnostici.

USCITA FILE


Nessuno.

EXTENDED DESCRIZIONE


See Capitolo 2, Conchiglia Comando Lingua. La funzionalità descritta nel resto del
La sezione DESCRIZIONE ESTESA deve essere fornita sulle implementazioni che supportano l'utente
Opzione Utilità di portabilità (e il resto di questa sezione non è ulteriormente ombreggiato per questo
opzione).

Comando Storia Lista
Quando il sh l'utilità viene utilizzata in modo interattivo, deve mantenere un elenco di comandi
precedentemente immesso dal terminale nel file denominato ARCHIVIO Industria XNUMX
variabile. Il tipo, la dimensione e il formato interno di questo file non sono specificati. Multiplo sh
i processi possono condividere l'accesso al file per un utente, se le autorizzazioni di accesso al file lo consentono;
vedi la descrizione del ARCHIVIO variabile d'ambiente.

Comando Line Editing
Quando sh viene utilizzato in modo interattivo da un terminale, il comando corrente e il comando
storia (vedi fc) può essere modificato utilizzando vi-modalità di modifica della riga di comando. Questa modalità utilizza
comandi, descritti di seguito, simili a un sottoinsieme di quelli descritti nel vi utilità.
Le implementazioni possono offrire altre modalità di modifica della riga di comando corrispondenti ad altre modalità di modifica
utilità.

Il comando set -o vi deve consentire vi-modifica e posizionamento della modalità sh ai miglioramenti vi modalità di inserimento (vedere
Comando Line Editing (modalità vi)). Questo comando disabiliterà anche qualsiasi altra modalità di modifica
che l'implementazione può prevedere. Il comando set +o vi disattiva vi-modifica in modalità.

Alcuni terminali in modalità blocco potrebbero non essere in grado di supportare la modifica della riga di comando della shell. Se un
il terminale non è in grado di fornire nessuna delle due modalità di modifica, non è necessario che sia possibile set -o vi quando
utilizzando la shell su questo terminale.

Nelle sezioni seguenti, i personaggi cancellare, interrompere, kille fine del file sono
quelli stabiliti dal sty utilità.

Comando Line Editing (modalità vi)
In vi modalità di modifica, ci sarà una riga distinta, la riga di modifica. Tutte le modifiche
le operazioni che modificano una riga influiscono sulla riga di modifica. La riga di modifica è sempre la più recente
riga nel buffer della cronologia dei comandi.

Con vi-modalità abilitata, sh può essere commutato tra la modalità di inserimento e la modalità di comando.

In modalità inserimento, un carattere immesso verrà inserito nella riga di comando, eccetto
come notato in vi Line Editing inserire Moda. Entrando sh e dopo la cessazione del
comando precedente, sh sarà in modalità di inserimento.

Digitando un carattere di escape si cambia sh in modalità comando (vedere vi Line Editing Comando
Moda). In modalità comando, un carattere immesso deve richiamare un'operazione definita, essere
utilizzato come parte di un'operazione multicarattere o essere trattato come un errore. Un carattere che
non è riconosciuto come parte di un comando di modifica, interromperà qualsiasi modifica specifica
comando e avviserà il terminale. Se sh riceve un segnale SIGINT in modalità comando
(sia generato digitando il interrompere carattere o con altri mezzi), deve
terminare la modifica della riga di comando sulla riga di comando corrente, riemettere il prompt sulla riga di comando successiva
riga del terminale e reimpostare la cronologia dei comandi (vedere fc) in modo che il più recente
il comando eseguito è il comando precedente (ovvero, il comando che era in fase di modifica quando
è stato interrotto non viene reinserito nella cronologia).

Nelle sezioni seguenti, la frase ``sposta il cursore all'inizio della parola''
significherà ``spostare il cursore sul primo carattere della parola corrente'' e la frase
``spostare il cursore alla fine della parola'' significa ``spostare il cursore all'ultima parola
carattere della parola corrente''. La frase ``inizio della riga di comando'' indica
il punto tra la fine della stringa di prompt emessa dalla shell (o l'inizio di
la riga del terminale, se non c'è una stringa di prompt) e il primo carattere del comando
testo.

vi Line Editing inserire Moda
In modalità inserimento, qualsiasi carattere digitato verrà inserito nella riga di comando corrente,
a meno che non appartenga al seguente set.

Esegui la riga di comando corrente. Se la riga di comando corrente non è vuota, questo
la riga deve essere inserita nella cronologia dei comandi (vedere fc).

cancellare Elimina il carattere precedente alla posizione corrente del cursore e sposta il
posizione corrente del cursore indietro di un carattere. In modalità inserimento, i caratteri devono essere
cancellati sia dallo schermo che dal buffer quando si esegue il backspace.

interrompere If sh riceve un segnale SIGINT in modalità di inserimento (sia generato digitando il
interrompere carattere o con altri mezzi), deve terminare la modifica della riga di comando
con gli stessi effetti descritti per l'interruzione della modalità comando; vedere Comando
Line Editing (modalità vi).

kill Cancella tutti i caratteri dalla riga di input.

-V
Inserisci il carattere successivo immesso, anche se il carattere è altrimenti speciale
carattere in modalità inserimento.

-O
Elimina i caratteri da quello che precede il cursore alla parola precedente
confine. Il confine della parola in questo caso è il più vicino al cursore di entrambi
l'inizio della riga o un carattere che non è né nell'uno né nell'altro vuotopunto
classificazione dei caratteri delle impostazioni locali correnti.

fine del file
Interpretato come la fine dell'input in shQuesta interpretazione potrà avvenire solo a
l'inizio di una riga di input. Se fine del file è inserito in un momento diverso da
all'inizio della riga, i risultati non sono specificati.

Posto sh in modalità comando.

vi Line Editing Comando Moda
In modalità comando per la funzione di modifica della riga di comando, le cifre decimali che non iniziano con 0
che precedono una lettera di comando devono essere ricordate. Alcuni comandi utilizzano queste cifre decimali
come numero di conteggio che influenza l'operazione.

Il termine movimento command rappresenta uno dei comandi:

0 b F l W ^ $ ; E f T w | , B e h t

Se la riga corrente non è la riga di modifica, qualsiasi comando che modifica la riga corrente deve
fa sì che il contenuto della riga corrente sostituisca il contenuto della riga di modifica e
la riga corrente diventerà la riga di modifica. Questa sostituzione non può essere annullata (vedere u e
U comandi sottostanti). La modifica richiesta verrà quindi eseguita sulla riga di modifica.
Quando la riga corrente è la riga di modifica, la modifica deve essere effettuata direttamente alla riga
modifica riga.

Qualsiasi comando preceduto da contare dovrà effettuare un conteggio (il valore numerico di qualsiasi
cifre decimali precedenti). Salvo diversa indicazione, questo conteggio causerà lo specificato
operazione da ripetere per il numero di volte specificato dal conteggio. Inoltre, salvo diversa indicazione
notato, un contare che è fuori portata è considerata una condizione di errore e deve avvisare il
terminale, ma né la posizione del cursore né la riga di comando cambieranno.

I termini parola e parola grossa sono utilizzati come definito nel vi descrizione. Il termine salvare bufferizzare
corrisponde al termine Senza nome bufferizzare in vi.

In modalità comando verranno riconosciuti i seguenti comandi:

Esegui la riga di comando corrente. Se la riga di comando corrente non è vuota, questo
la riga deve essere inserita nella cronologia dei comandi (vedere fc).

-L
Ridisegna la riga di comando corrente. Posiziona il cursore nella stessa posizione sulla
linea ridisegnata.

# Inserisci il carattere '#' all'inizio della riga di comando corrente e trattare
la riga di modifica risultante come commento. Questa riga deve essere inserita nel
cronologia dei comandi; vedere fc.

= Visualizza le possibili espansioni delle parole shell (vedi Sezione 2.6, Word espansioni) di
la parola chiave nella posizione corrente della riga di comando.

Nota: Ciò non modifica il contenuto della riga corrente e pertanto
non fa sì che la riga corrente diventi la riga di modifica.

Queste espansioni devono essere visualizzate sulle righe terminali successive. Se la parola chiave
non contiene nessuno dei caratteri '?', '*', o '[', UN ('*') sarà
implicitamente assunto alla fine. Se vengono trovate corrispondenze tra directory, queste espansioni
deve avere un "/" carattere aggiunto. Dopo l'espansione, la linea deve essere
ridisegnato, il cursore riposizionato nella posizione corrente del cursore e sh deve essere
messo in modalità comando.

\ Eseguire l'espansione del percorso (vedere Sezione 2.6.6, Pathname Espansione) sul
parola chiave corrente, fino al più grande set di caratteri che può essere abbinato
in modo univoco. Se la parola chiave non contiene nessuno dei caratteri '?', '*', o '[', una
('*') sarà implicitamente assunto alla fine. Questa espansione massima
quindi sostituirà la parola chiave originale nella riga di comando e il cursore
deve essere posizionato dopo questa espansione. Se la parola risultante è completamente e
corrisponde in modo univoco a una directory, a "/" il carattere deve essere inserito direttamente dopo
la parola chiave. Se un altro file corrisponde completamente, un singolo sarà
inserito dopo la parola grossa. Dopo questa operazione, sh deve essere inserito nell'inserto
modalità.

* Esegui l'espansione del percorso sulla parola chiave corrente e inserisci tutte le espansioni in
il comando per sostituire la bigword corrente, con ogni espansione separata da un
separare . Se alla fine della riga, la posizione corrente del cursore deve essere
spostato nella prima posizione della colonna in seguito alle espansioni e sh deve essere
messo in modalità inserimento. Altrimenti, la posizione corrente del cursore sarà l'ultima
posizione della colonna del primo carattere dopo le espansioni e sh deve essere
messo in modalità inserimento. Se la parola grande corrente non contiene nessuno dei caratteri
'?', '*', o '[', prima dell'operazione, un ('*') sarà implicitamente
presunto alla fine.

@lettera Inserisci il valore dell'alias denominato _lettera. Il simbolo lettera rappresenta a
singolo carattere alfabetico dal set di caratteri portatile; le implementazioni possono
supportare caratteri aggiuntivi come estensione. Se l'alias _lettera contiene
altri comandi di modifica, questi comandi devono essere eseguiti come parte del
inserimento. Se non c'è alias _lettera è abilitato, questo comando non avrà alcun effetto.

[contare]~ Converti, se il carattere corrente è una lettera minuscola, nell'equivalente
lettera maiuscola e vice versa, come prescritto dalle impostazioni locali correnti. Il
la posizione corrente del cursore verrà quindi avanzata di un carattere. Se il cursore
è stato posizionato sull'ultimo carattere della riga, la conversione da maiuscolo a minuscolo deve
si verifica, ma il cursore non avanza. Se il '~' il comando è preceduto da un
contare, quel numero di caratteri verrà convertito e il cursore verrà
avanzato alla posizione del carattere dopo l'ultimo carattere convertito. Se il
contare è maggiore del numero di caratteri dopo il cursore, questo non deve
essere considerato un errore; il cursore avanzerà all'ultimo carattere sul
linea.

[contare]. Ripeti il ​​comando non di movimento più recente, anche se è stato eseguito in precedenza
riga di comando. Se il comando precedente era preceduto da un contare, e nessun conteggio è
dato sul "." comando, il conteggio del comando precedente deve essere incluso
come parte del comando ripetuto. Se il "." il comando è preceduto da un contare,
questo prevarrà su qualsiasi contare argomento al comando precedente. Il contare
specificato in "." il comando diventerà il conteggio per i successivi "."
comandi impartiti senza conteggio.

[numero]v Invocare il vi editor per modificare la riga di comando corrente in un file temporaneo. Quando
l'editor esce, i comandi nel file temporaneo verranno eseguiti e
inserito nella cronologia dei comandi. Se un numero è incluso, specifica il comando
numero nella cronologia dei comandi da modificare, anziché il comando corrente
linea.

[contare]l (tutto)

[contare]
Sposta la posizione corrente del cursore alla posizione del carattere successivo. Se il cursore
è stato posizionato sull'ultimo carattere della riga, il terminale verrà avvisato
e il cursore non deve avanzare. Se il contare è più grande del numero di
caratteri dopo il cursore, questo non deve essere considerato un errore; il cursore
avanzerà fino all'ultimo carattere della riga.

[contare]h Sposta la posizione corrente del cursore su contareth (predefinito 1) carattere precedente
posizione. Se il cursore è posizionato sul primo carattere della riga, il
il terminale verrà avvisato e il cursore non verrà spostato. Se il conteggio è
maggiore del numero di caratteri prima del cursore, questo non deve essere
considerato un errore; il cursore si sposterà sul primo carattere della riga.

[contare]w Spostarsi all'inizio della parola successiva. Se il cursore era posizionato sull'ultima
carattere della riga, il terminale verrà avvisato e il cursore non verrà
avanzato. Se il contare è maggiore del numero di parole dopo il cursore, questo
non sarà considerato un errore; il cursore avanzerà all'ultimo carattere
sulla linea.

[contare]W Spostarsi all'inizio della parola successiva. Se il cursore era posizionato sull'ultima
carattere della riga, il terminale verrà avvisato e il cursore non verrà
avanzato. Se il contare è maggiore del numero di parole grandi dopo il cursore,
questo non sarà considerato un errore; il cursore avanzerà all'ultimo
personaggio sulla linea.

[contare]e Spostarsi alla fine della parola corrente. Se alla fine di una parola, spostarsi alla fine di
la parola successiva. Se il cursore è posizionato sull'ultimo carattere della riga,
il terminale verrà avvisato e il cursore non verrà fatto avanzare. Se il contare
è maggiore del numero di parole dopo il cursore, questo non deve essere
considerato un errore; il cursore avanzerà all'ultimo carattere della riga.

[contare]E Spostarsi alla fine della parola più importante corrente. Se alla fine di una parola più importante, spostarsi alla
fine della parola successiva. Se il cursore è posizionato sull'ultimo carattere di
la linea, il terminale verrà avvisato e il cursore non verrà fatto avanzare. Se
, il contare è maggiore del numero di parole grandi dopo il cursore, questo non deve
essere considerato un errore; il cursore avanzerà all'ultimo carattere sul
linea.

[contare]b Spostarsi all'inizio della parola corrente. Se all'inizio di una parola, spostarsi
all'inizio della parola precedente. Se il cursore era posizionato sulla prima
carattere della riga, il terminale verrà avvisato e il cursore non verrà
spostato. Se il contare è maggiore del numero di parole che precedono il cursore,
questo non sarà considerato un errore; il cursore tornerà al primo
personaggio sulla linea.

[contare]B Spostarsi all'inizio della parola più importante corrente. Se ci si trova all'inizio di una parola più importante,
spostarsi all'inizio della parola precedente. Se il cursore era posizionato su
il primo carattere della riga, il terminale verrà avvisato e il cursore
non deve essere spostato. Se il contare è maggiore del numero di parole grandi che precedono
il cursore, questo non sarà considerato un errore; il cursore tornerà a
il primo carattere sulla riga.

^ Sposta la posizione corrente del cursore sul primo carattere sulla riga di input che
non è un .

$ Spostarsi all'ultima posizione del carattere sulla riga di comando corrente.

0 (Zero.) Spostarsi alla prima posizione del carattere sulla riga di comando corrente.

[contare]| Sposta in contareposizione del carattere sulla riga di comando corrente. Se non c'è alcun numero
è specificato, spostati alla prima posizione. La posizione del primo carattere deve essere
numerato 1. Se il conteggio è maggiore del numero di caratteri sulla riga,
questo non sarà considerato un errore; il cursore sarà posizionato sull'ultimo
personaggio sulla linea.

[contare]fc Passa alla prima occorrenza del carattere 'C' che si verifica dopo la corrente
posizione del cursore. Se il cursore è posizionato sull'ultimo carattere della riga,
il terminale verrà avvisato e il cursore non verrà fatto avanzare. Se il
carattere 'C' non si verifica nella riga successiva alla posizione corrente del cursore, il
il terminale verrà avvisato e il cursore non verrà spostato.

[contare]Fc Passa alla prima occorrenza del carattere 'C' che si verifica prima della corrente
posizione del cursore. Se il cursore è posizionato sul primo carattere del
riga, il terminale verrà avvisato e il cursore non verrà spostato. Se il
carattere 'C' non si verifica nella riga prima della posizione corrente del cursore, il
il terminale verrà avvisato e il cursore non verrà spostato.

[contare]tc Spostarsi al carattere precedente alla prima occorrenza del carattere 'C' che
si verifica dopo la posizione corrente del cursore. Se il cursore è stato posizionato su
ultimo carattere della riga, il terminale verrà avvisato e il cursore
non essere avanzato. Se il personaggio 'C' non si verifica nella riga successiva al
posizione corrente del cursore, il terminale verrà avvisato e il cursore non verrà
essere spostato

[contare]Tc Passa al carattere dopo la prima occorrenza del carattere 'C' che
si verifica prima della posizione corrente del cursore. Se il cursore è stato posizionato su
primo carattere della riga, il terminale verrà avvisato e il cursore
non essere spostato. Se il personaggio 'C' non si verifica nella riga prima della corrente
posizione del cursore, il terminale verrà avvisato e il cursore non verrà
mosso.

[contare]; Ripeti il ​​più recente f, F, t, o T comando. Qualsiasi argomento numerico su quello
il comando precedente verrà ignorato. Gli errori sono quelli descritti per il comando ripetuto
comando.

[contare], Ripeti il ​​più recente f, F, t, o T comando. Qualsiasi argomento numerico su quello
il comando precedente verrà ignorato. Tuttavia, inverti la direzione di tale
comando.

a Entra in modalità inserimento dopo la posizione corrente del cursore. I caratteri inseriti
verrà inserito prima del carattere successivo.

A Entra in modalità inserimento dopo la fine della riga di comando corrente.

i Entra in modalità inserimento nella posizione corrente del cursore. I caratteri inseriti
verrà inserito prima del carattere corrente.

I Entra in modalità inserimento all'inizio della riga di comando corrente.

R Entra in modalità inserimento, sostituendo i caratteri dalla riga di comando a partire da
posizione corrente del cursore.

[contare]cmovimento
Elimina i caratteri tra la posizione corrente del cursore e il cursore
posizione che risulterebbe dal comando di movimento specificato. Quindi immettere insert
modalità prima del primo carattere successivo a qualsiasi carattere eliminato. Se contare is
specificato, deve essere applicato al comando di movimento. Un contare deve essere ignorato
per i seguenti comandi di movimento:

0 ^ $ c

Se il comando di movimento è il carattere 'C', la riga di comando corrente deve essere
cancellato e si entrerà in modalità di inserimento. Se il comando di movimento spostasse il
posizione corrente del cursore verso l'inizio della riga di comando, il carattere
sotto la posizione corrente del cursore non verrà eliminato. Se il comando di movimento
sposterebbe la posizione corrente del cursore verso la fine della riga di comando, il
carattere sotto la posizione corrente del cursore verrà eliminato. Se il contare is
maggiore del numero di caratteri tra la posizione corrente del cursore e la
fine della riga di comando verso la quale il comando di movimento sposterebbe il cursore,
questo non deve essere considerato un errore; tutti i caratteri rimanenti nel
l'intervallo sopra menzionato verrà eliminato e verrà attivata la modalità di inserimento. Se
il comando di movimento non è valido, il terminale verrà avvisato, il cursore non verrà
essere spostato e nessun testo verrà eliminato.

C Elimina dal carattere corrente fino alla fine della riga e entra in modalità inserimento
al nuovo capolinea.

S Cancella l'intera riga di modifica ed entra in modalità inserimento.

[contare]rc Sostituisci il carattere corrente con il carattere 'C'Con un numero contare,
sostituire la corrente e la seguente contare-1 caratteri. Dopo questo comando,
la posizione corrente del cursore sarà sull'ultimo carattere che è stato modificato. Se
, il contare è maggiore del numero di caratteri dopo il cursore, questo deve
non sarà considerato un errore; tutti i caratteri rimanenti saranno modificati.

[contare]_ Aggiungi un dopo la posizione corrente del carattere e quindi aggiungere l'ultimo
bigword nella riga di input precedente dopo il . Quindi entra in modalità inserimento
dopo l'ultimo carattere appena aggiunto. Con un numero contare, aggiungere il contareth
parola grossa nella riga precedente.

[contare]x Elimina il carattere nella posizione corrente del cursore e posiziona il carattere eliminato
caratteri nel buffer di salvataggio. Se il cursore è stato posizionato sull'ultimo
carattere della riga, il carattere verrà eliminato e la posizione del cursore
verrà spostato al carattere precedente (il nuovo ultimo carattere). Se il contare
è maggiore del numero di caratteri dopo il cursore, questo non deve essere
considerato un errore; tutti i caratteri dal cursore alla fine della riga
deve essere cancellato.

[contare]X Elimina il carattere prima della posizione corrente del cursore e posiziona il carattere eliminato
caratteri nel buffer di salvataggio. Il carattere sotto la posizione corrente del cursore
non cambierà. Se il cursore è posizionato sul primo carattere del
linea, il terminale verrà avvisato e il X il comando non avrà alcun effetto. Se
la riga conteneva un singolo carattere, il X il comando non avrà alcun effetto. Se
la riga non contiene caratteri, il terminale verrà avvisato e il cursore
non deve essere spostato. Se il contare è maggiore del numero di caratteri precedenti
il cursore, questo non deve essere considerato un errore; tutti i caratteri da
prima che il cursore si trovi all'inizio della riga verrà cancellato.

[contare]dmovimento
Elimina i caratteri tra la posizione corrente del cursore e il carattere
posizione che risulterebbe dal comando di movimento. Un numero contare ripete il
comando di movimento contare volte. Se il comando di movimento si spostasse verso il
inizio della riga di comando, il carattere sotto la posizione corrente del cursore
non deve essere cancellato. Se il comando di movimento è d, l'intero comando corrente
la linea deve essere liberata. Se la contare è maggiore del numero di caratteri
tra la posizione corrente del cursore e la fine della riga di comando verso cui
il comando di movimento sposterebbe il cursore, questo non deve essere considerato un errore;
tutti i caratteri rimanenti nell'intervallo sopra menzionato verranno eliminati.
I caratteri eliminati verranno inseriti nel buffer di salvataggio.

D Elimina tutti i caratteri dalla posizione corrente del cursore fino alla fine della riga.
I caratteri eliminati verranno inseriti nel buffer di salvataggio.

[contare]ymovimento
Copiare (ovvero copiare) i caratteri dalla posizione corrente del cursore alla
posizione risultante dal comando di movimento nel buffer di salvataggio. Un numero contare
deve essere applicato al comando di movimento. Se il comando di movimento si muovesse verso
l'inizio della riga di comando, il carattere sotto il cursore corrente
la posizione non deve essere inclusa nell'insieme dei caratteri copiati. Se il movimento
il comando è y, l'intera riga di comando corrente verrà copiata nel salvataggio
buffer. La posizione corrente del cursore non deve essere modificata. Se il contare è più grande
rispetto al numero di caratteri tra la posizione corrente del cursore e la fine di
la riga di comando verso la quale il comando di movimento sposterebbe il cursore, questo
non deve essere considerato un errore; tutti i caratteri rimanenti nel
la gamma sopra menzionata verrà ridotta.

Y Sposta i caratteri dalla posizione corrente del cursore alla fine della riga in
il buffer di salvataggio. La posizione corrente del carattere rimarrà invariata.

[contare]p Inserisci una copia del contenuto corrente del buffer di salvataggio dopo il cursore corrente
posizione. La posizione corrente del cursore verrà avanzata all'ultimo carattere
messo dal buffer di salvataggio. A contare deve indicare quante copie del salvataggio
il buffer deve essere messo.

[contare]P Inserisci una copia del contenuto corrente del buffer di salvataggio prima del cursore corrente
posizione. La posizione corrente del cursore verrà spostata sull'ultimo carattere inserito
dal buffer di salvataggio. A contare deve indicare quante copie del buffer di salvataggio
sarà messo.

u Annulla l'ultimo comando che ha modificato la riga di modifica. Questa operazione non verrà annullata.
la copia di qualsiasi riga di comando nella riga di modifica.

U Annulla tutte le modifiche apportate alla riga di modifica. Questa operazione non annullerà la copia.
di qualsiasi riga di comando alla riga di modifica.

[contare]k

[contare]− Imposta la riga di comando corrente come contareriga di comando precedente nel
cronologia dei comandi shell. Se contare non è specificato, il valore predefinito è 1. Il
il cursore deve essere posizionato sul primo carattere del nuovo comando. Se un k or
- il comando si ritirerebbe oltre il numero massimo di comandi in vigore per questo
guscio (interessato dal HISTSIZE variabile d'ambiente), il terminale deve essere
allertato e il comando non avrà alcun effetto.

[contare]j

[contare]+ Imposta la riga di comando corrente come contarela prossima riga di comando nella shell
cronologia dei comandi. Se contare non è specificato, il valore predefinito è 1. Il cursore
deve essere posizionato sul primo carattere del nuovo comando. Se un j or +
il comando avanza oltre la riga di modifica, la riga di comando corrente verrà ripristinata
alla riga di modifica e il terminale verrà avvisato.

[numero]G Imposta la riga di comando corrente come la riga di comando più vecchia memorizzata nella shell
cronologia dei comandi. Con un numero numero, imposta la riga di comando corrente come
riga di comando numero nella cronologia. Se la riga di comando numero non esiste, il
il terminale verrà avvisato e la riga di comando non verrà modificata.

/modello
Spostarsi indietro nella cronologia dei comandi, cercando il modello specificato,
a partire dalla riga di comando precedente. I pattern utilizzano la corrispondenza dei pattern
notazione descritta in Sezione 2.13, Cartamodello Abbinare notazione, tranne che il
'^' il carattere avrà un significato speciale quando appare come primo carattere
of modello. In questo caso, il '^' viene scartato e i caratteri dopo il '^'
deve essere abbinato solo all'inizio di una riga. I comandi nel comando
la cronologia deve essere trattata come stringhe, non come nomi di file. Se il modello non è
trovato, la riga di comando corrente non verrà modificata e il terminale verrà avvisato.
Se si trova in una riga precedente, la riga di comando corrente deve essere impostata su quella
riga e il cursore verrà impostato sul primo carattere della nuova riga di comando.

If modello è vuoto, l'ultimo modello non vuoto fornito a / or ? deve essere
utilizzato. Se non esiste un modello precedente non vuoto, il terminale verrà avvisato
e la riga di comando corrente rimarrà invariata.

?modello
Spostarsi in avanti nella cronologia dei comandi, cercando il modello specificato,
a partire dalla riga di comando successiva. I pattern utilizzano la notazione di corrispondenza dei pattern
descritto in Sezione 2.13, Cartamodello Abbinare notazione, tranne che il '^'
il carattere avrà un significato speciale quando appare come primo carattere di
modello. In questo caso, il '^' viene scartato e i caratteri dopo il '^'
deve essere abbinato solo all'inizio di una riga. I comandi nel comando
la cronologia deve essere trattata come stringhe, non come nomi di file. Se il modello non è
trovato, la riga di comando corrente rimarrà invariata e il terminale verrà avvisato. Se
si trova in una riga successiva, la riga di comando corrente deve essere impostata su quella
riga e il cursore verrà impostato sul primo carattere della nuova riga di comando.

If modello è vuoto, l'ultimo modello non vuoto fornito a / or ? deve essere
utilizzato. Se non esiste un modello precedente non vuoto, il terminale verrà avvisato
e la riga di comando corrente rimarrà invariata.

n Ripeti il ​​più recente / or ? comando. Se non c'è nessun precedente / or ?, l'
il terminale verrà avvisato e la riga di comando corrente rimarrà invariata.

N Ripeti il ​​più recente / or ? comando, invertendo la direzione della ricerca.
Se non c'è nessun precedente / or ?, il terminale verrà avvisato e la corrente
la riga di comando rimarrà invariata.

EXIT STATUS


Devono essere restituiti i seguenti valori di uscita:

0 Lo script da eseguire consisteva esclusivamente di zero o più righe vuote o
commenti, o entrambi.

1‐125 Una shell non interattiva ha rilevato un errore diverso da file_comando non trovato,
inclusi, a titolo esemplificativo ma non esaustivo, errori di sintassi, di reindirizzamento o di assegnazione delle variabili.

127 A specificato file_comando non è stato trovato da una shell non interattiva.

Altrimenti, la shell restituirà lo stato di uscita dell'ultimo comando invocato o
ha tentato di invocare (vedi anche il exit utilità in Sezione 2.14, Special Built-In
Elettricita, Gas Ed Acqua).

CONSEGUENZE OF ERRORI


See Sezione 2.8.1, Conseguenze of Conchiglia errori.

. i seguenti sezioni sono Informativo.

APPLICAZIONI USO


L'input standard e l'errore standard sono i file che determinano se una shell è
interattivo quando -i non è specificato. Ad esempio:

sh > filetto

e:

sh 2> filetto

creano rispettivamente shell interattive e non interattive. Sebbene entrambe accettino il terminale
input, i risultati delle condizioni di errore sono diversi, come descritto in Sezione 2.8.1,
Conseguenze of Conchiglia errori; nel secondo esempio un errore di reindirizzamento riscontrato da un
Un'utilità integrata speciale interrompe la shell.

Un'applicazione conforme deve proteggere il suo primo operando, se inizia con un ,
facendolo precedere dal "--" argomento che indica la fine delle opzioni.

Le applicazioni devono tenere presente che lo standard PERCORSO al guscio non si può presumere che sia
o /bin/sh or /usr/bin/sh, e dovrebbe essere determinato mediante interrogazione del PERCORSO
restituito da getconf PERCORSO, assicurando che il percorso restituito sia un percorso assoluto e
non è un guscio incorporato.

Ad esempio, per determinare la posizione dello standard sh utilità:

command -v sh

In alcune implementazioni potrebbe restituire:

/usr/xpg4/bin/sh

Inoltre, sui sistemi che supportano script eseguibili (il "#!" costrutto), è
si consiglia di installare le applicazioni che utilizzano script eseguibili utilizzando getconf PERCORSO a
determinare il percorso della shell e aggiornare il "#!" scrivere la sceneggiatura in modo appropriato così come viene
installato (ad esempio, con sete). Per esempio:

#
# SERVIZIO DI tempo copione a install correggere POSIX conchiglia pathname
#
# Ottieni stratagemma of percorsi a dai un'occhiata
#
Sifs=$IFS
Sifs_set=${IFS+y}
SE=:
set −− $(getconf SENTIERO)
if [ "$Sifs_set" = y ]
poi
IFS=$Sifs
altro
non settato IFS
fi
#
# Vedi ogni sentiero da 'sh'
#
da i
do
if [ -x "${i}"/sh ]
poi
Pshell=${i}/sh
fi
fatto
#
# Questo is , il stratagemma of script a aggiornare. Essi dovrebbero be of , il
# modulo '${nome}.source' e andrete a be trasformato a '${nome}'.
# Ogni copione dovrebbero inizio:
#
# #!INSTALLSHELPATH
#
script="a b c"
#
# Trasformare ogni copione
#
da i in ${script}
do
sete -e "s|INSTALLSHELLPATH|${Pshell}|" < ${i}.source > ${i}
fatto

ESEMPI


1. Eseguire un comando shell da una stringa:

sh -c "gatto miofile"

2. Eseguire uno script shell da un file nella directory corrente:

sh my_shell_cmds

FONDAMENTO LOGICO


. sh utilità e la set Le utility integrate speciali condividono un set comune di opzioni.

Il nome IFS era originariamente un'abbreviazione di ``Input Field Separators''; tuttavia, questo
il nome è fuorviante in quanto IFS i caratteri sono effettivamente utilizzati come terminatori di campo. Il
KornShell ignora il contenuto di IFS all'ingresso nello script. Una domanda conforme
non si può fare affidamento sull'importazione IFSUna giustificazione per questo, oltre alle considerazioni di sicurezza,
è quello di assistere possibili futuri compilatori di shell. Permettendo IFS da importare dal
l'ambiente impedisce molte ottimizzazioni che altrimenti potrebbero essere eseguite tramite flusso di dati
analisi della sceneggiatura stessa.

Il testo nella sezione STDIN sulle letture non bloccanti riguarda un'istanza di sh che ha
è stato invocato, probabilmente da un programma in linguaggio C, con input standard che è stato aperto
utilizzando il flag O_NONBLOCK; vedere aprire() nel volume System Interfaces di POSIX.1‐2008. Se
la shell non ha reimpostato questo flag, verrebbe immediatamente terminata perché non ci sono dati di input
sarebbe ancora disponibile e sarebbe considerato come fine file.

Le opzioni associate a un limitato conchiglia (nome del comando rsh e la -r opzione) erano
escluso perché gli sviluppatori dello standard hanno ritenuto che il livello implicito di sicurezza
non poteva essere raggiunto e non volevano creare false aspettative.

Nei sistemi che supportano gli script set-user-ID, una botola storica è stata quella di collegare un
sceneggiatura del nome -iQuando viene chiamato da una sequenza come:

sh -

o tramite:

#! usr/bin/sh -

i sistemi storici hanno dato per scontato che non ci siano lettere di opzione. Pertanto, questo volume di
POSIX.1‐2008 consente il singolo per segnare la fine delle opzioni, oltre alla
uso del normale "--" argomentazione, perché si riteneva che la pratica più vecchia fosse così
pervasivo. Un approccio alternativo è adottato da KornShell, dove reale ed efficace
gli ID utente/gruppo devono corrispondere per una shell interattiva; questo comportamento è specificamente consentito
da questo volume di POSIX.1‐2008.

Nota: Ci sono altri problemi con gli script set-user-ID che i due approcci
descritti qui non risolvono.

Il processo di inizializzazione per il file di cronologia può dipendere dall'avvio del sistema
file, in quanto possono contenere comandi che di fatto prevalgono sulle impostazioni dell'utente
ARCHIVIO e HISTSIZEAd esempio, i comandi di definizione delle funzioni vengono registrati nel
file di cronologia, a meno che il set -o nolog l'opzione è impostata. Se l'amministratore di sistema include
definizioni di funzione in alcuni file di avvio del sistema chiamati prima del ENV file, la cronologia
il file viene inizializzato prima che l'utente abbia la possibilità di influenzarne le caratteristiche. In
alcune shell storiche, il file della cronologia viene inizializzato subito dopo ENV il file è stato
elaborati. Pertanto, è definito dall'implementazione se le modifiche apportate a ARCHIVIO dopo
il file cronologico è stato inizializzato sono efficaci.

I messaggi predefiniti per i vari MAIL-i messaggi correlati non sono specificati perché
variano a seconda delle implementazioni. I messaggi tipici sono:

"Voi avere posta\n"

o:

"Voi avere nuovi posta\n"

È importante che le descrizioni della modifica della riga di comando facciano riferimento alla stessa shell di
che in POSIX.1‐2008 in modo che gli utenti interattivi possano anche essere programmatori di applicazioni senza
dover affrontare le differenze programmatiche nei loro due ambienti. È anche
essenziale che il nome dell'utilità sh essere specificato perché questo nome di utilità esplicito è troppo
saldamente radicato nella pratica storica dei programmi applicativi affinché possa cambiare.

È stata presa in considerazione l'imposizione di un messaggio diagnostico quando si tenta di impostare vi-modalità
su terminali che non supportano la modifica della riga di comando. Tuttavia, non è storico
pratica affinché la shell sia a conoscenza di tutti i tipi di terminali e quindi sia in grado di rilevare
terminali inappropriati in tutti i casi. Si incoraggiano le implementazioni a fornire
diagnostica in questo caso, ove possibile, piuttosto che lasciare l'utente in uno stato in cui
i comandi di modifica non funzionano correttamente.

Nelle prime proposte, il derivato di KornShell emacs è stata inclusa la modalità di modifica della riga di comando,
anche se il emacs l'editor stesso non lo era. La comunità di emacs i sostenitori erano irremovibili
che il pieno emacs l'editor non deve essere standardizzato perché temevano che un tentativo
standardizzare questo ambiente molto potente incoraggerebbe i fornitori a spedire in modo rigoroso
versioni conformi prive dell'estendibilità richiesta dalla comunità. L'autore del
i emacs programma ha anche espresso il suo desiderio di omettere il programma. Inoltre, c'è
c'erano una serie di sistemi storici che non includevano emacs, o lo ha incluso senza
sostenendolo, ma erano pochissimi quelli che non lo includevano e non lo supportavano viIl guscio
emacs la modalità di modifica della riga di comando è stata infine omessa perché è diventato evidente che
La versione KornShell e l'editor distribuito con il sistema GNU erano divergenti
per certi aspetti. L'autore di emacs ha richiesto che il POSIX emacs la modalità può essere eliminata
o presentano un numero significativo di condizioni non specificate. Sebbene l'autore di KornShell
hanno concordato di prendere in considerazione modifiche per allineare la shell, gli sviluppatori standard
decise di rinviare la specifica in quel momento. All'epoca, si presumeva che la convergenza
su una definizione accettabile si sarebbe verificato per una bozza successiva, ma ciò non è accaduto,
e non sembra esserci alcun impulso a farlo. In ogni caso, le implementazioni sono libere di
offrono modalità di modifica della riga di comando aggiuntive basate sui modelli esatti dei loro editor
con cui gli utenti si sentono più a loro agio.

Le prime proposte avevano la seguente voce di elenco in vi Line Editing inserire Moda:

\ Se seguito da cancellare or kill carattere, quel carattere deve essere inserito in
la riga di input. Altrimenti, il stesso deve essere inserito nell'input
linea.

Tuttavia, questa non è in realtà una caratteristica di sh modalità di inserimento della modifica della riga di comando, ma uno dei
alcuni driver di linea terminali storici. Alcune implementazioni conformi continuano a farlo
quando l' sty iexten la bandiera è impostata.

Nelle shell interattive, SIGTERM viene ignorato in modo che kill 0 non uccide il guscio, e
SIGINT viene catturato in modo che aspettare è interrompibile. Se la shell non ignora SIGTTIN,
SIGTTOU e SIGTSTP segnalano quando è interattivo e -m l'opzione non è in vigore,
Questi segnali sospendono la shell se non è un leader di sessione. Se è un leader di sessione,
i segnali vengono scartati se interrompessero il processo, come richiesto dal Sistema
Volume Interfacce di POSIX.1‐2008, Sezione 2.4.3, Signal Azioni per processo orfano
gruppi.

FUTURE INDICAZIONI


Nessuno.

Utilizzare shposix online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

Comandi Linux

Ad




×
Cookie per pubblicità
❤️Fai acquisti, prenota o acquista qui: nessun costo, aiuta a mantenere i servizi gratuiti.