ho una cartella con i file che assomigliano a questo:BASH: Trova il nome del file il numero più alto in una directory in cui nomi iniziano con le cifre (ls, sed)
001_something.php 002_something_else.php
004_xyz.php 005_do_good_to_others.php
fine ho voglia di creare un nuovo, PHP vuoto file il cui nome inizia con il numero successivo della serie.
LIST=`exec ls $MY_DIR | sed 's/\([0-9]\+\).*/\1/g' | tr '\n' ' '`
Il codice precedente mi dà una stringa come questa:
LIST='001 002 004 005 '
voglio afferrare che 005, incrementano di uno, e quindi utilizzare questo numero per generare il nuovo nome del file. Come posso farlo in BASH?
È questo per l'esecuzione come parte di un'applicazione web? Se il web server accetta più richieste simultanee (la maggior parte lo fanno), come proteggi contro la condizione di competizione quando i processi A e B eseguono il controllo simultaneamente e poi creano un file con lo stesso numero? – telent
no questo faceva parte di uno script di shell per emulare lo strumento di generazione di migrazione delle guide, per un'app di php che utilizza un'implementazione red-headed-stepchild del modello di migrazione del database. – Jake