Se vuoi usare cut
in questo modo, devi usare il reindirizzamento <<<
(una stringa qui) come:
var=$(cut -c-5 <<< "$line")
Nota l'uso di var=$(command)
espressione invece di id= cut -c-5 $line
. Questo è il modo per salvare il comando in una variabile.
Inoltre, usa /bin/bash
invece di /bin/sh
per farlo funzionare.
Codice completo che funziona per me:
#!/bin/bash
filename='sample.txt'
while read -r line
do
id=$(cut -c-5 <<< "$line")
echo $id
#code for passing id to other script file as parameter
done < "$filename"
Bene, è un cut -c-5 sample.txt
di una riga . Esempio:
$ cut -c-5 sample.txt
31113
31114
31111
31112
Da lì in poi, puoi reindirizzarlo a qualsiasi altro script o comando:
$ cut -c-5 sample.txt | while read line; do echo Hello $line; done
Hello 31113
Hello 31114
Hello 31111
Hello 31112