Wenn Sie cut
verwenden möchten Auf diese Weise müssen Sie die Umleitung <<<
verwenden (ein Here-String) wie:
var=$(cut -c-5 <<< "$line")
Beachten Sie die Verwendung von var=$(command)
Ausdruck anstelle von id= cut -c-5 $line
. So speichern Sie den Befehl in einer Variablen.
Verwenden Sie außerdem /bin/bash
statt /bin/sh
damit es funktioniert.
Vollständiger Code, der für mich funktioniert:
#!/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"
Nun, es ist ein Einzeiler cut -c-5 sample.txt
. Beispiel:
$ cut -c-5 sample.txt
31113
31114
31111
31112
Von da an können Sie es an jedes andere Skript oder jeden Befehl weiterleiten:
$ cut -c-5 sample.txt | while read line; do echo Hello $line; done
Hello 31113
Hello 31114
Hello 31111
Hello 31112