Ваша изначальная проблема в том, что вы написали $1
между двойными кавычками.
"cat myfile | awk -F',' '{print $1}'"
переменные bash по-прежнему заменяются своими значениями, если они находятся в строке в двойных кавычках, несмотря на тот факт, что они находятся в одинарных кавычках внутри двойных кавычек. По этой причине $1
заменяется на arg1
.
Вторая проблема заключается в том, что вы хотите выполнить команду:
cat myfile | awk -F',' '{print $1}'
, но для этого вам нужно использовать обозначение $( command )
или `command`
, однако последнее не рекомендуется, поскольку вложение затруднено.
Итак, ваш цикл for должен выглядеть примерно так:
#!/usr/bin/env bash
for i in $(awk -F ',' '{print $1}' myfile); do
...
done