Вы можете передавать переменные в свой скрипт awk непосредственно из командной строки.
Измените эту строку:
filetime[$'$colnumber']++;
На:
filetime[colnumber]++;
И выполните:
ls -al | awk -f ./myawk.awk -v colnumber=5
Если вы действительно хотите использовать оболочку bash:
#!/bin/bash
var1=$1
awk -f myawk.awk colnumber=$var1
(с теми же изменениями в вашем скрипте, что и выше.)
Если вы хотитеиспользуйте переменные окружения use:
#!/bin/bash
export var1=$1
awk -f myawk.awk
и:
filetime[ENVIRON["var1"]]++;
(хотя я действительно не понимаю, какова цель вашего сценария awk. Последняя часть может быть упрощена до:
END { print filetime[colnumber],colnumber; }
и синтаксический анализ вывода ls
, как правило, плохая идея.)