/ / for i in {00..03} funktioniert nicht mit nohup - linux, bash, for-loop

für i in {00..03} funktioniert nicht mit nohup - linux, bash, for-loop

Die für nohup gesendete for-Schleife funktioniert normalerweise nicht

  $ for i in {00..03};do echo $i;done
00
01
02
03

Schreiben Sie diesen Code jedoch in test.sh, nohup ./test.sh & gibt folgende Ausgabe aus:

  $ nohup ./test.sh &
{00..03}

kann nicht 00 01 02 03 produzieren, warum? Ps. auf debian 8 oder ubuntu 15.10 ("seq -w" funktioniert)

Antworten:

3 für die Antwort № 1

Wenn Ihre Datei keinen Shebang hat, hängt es von der Shell ab nohup Führt das Skript in aus. Fügen Sie der Datei diese Zeile voran:

  #!/bin/bash

1 für die Antwort № 2

Schon seit Klammererweiterung ist keine POSIX-Shell-Funktion, und viele Systemdienste werden im POSIX-Modus ausgeführt. Dies funktioniert nicht.

Der tragbare Weg, dies für nur vier Elemente zu lösen, ist die Verwendung

for i in 00 01 02 03; do
something
done

Wenn Sie sich daran gewöhnen, Dinge auf die POSIX-Art zu tun, werden Sie weniger Überraschungen dieser Art erleben.