Ваша строка:
val=$("$line" | wc -c)
Эта пытается выполнить команду, данную $line
и пропустить выход через wc -c
. Сообщение об ошибке, которое Вы видите, указывает на то, что он пытается выполнить команду "hellounix
", как и в первой строке Вашего файла. Если Вы хотите передать значение переменной в команду вместо нее, Вы можете использовать printf
:
val=$(printf '%s' "$line" | wc -c)
Если Вы используете Bash, zsh, или другую более мощную оболочку, Вы также можете использовать здесь stringings:
val=$(wc -c <<<"$line")
выполняет расширение на строке
"$line"
, а затем предоставляет его в качестве стандартного входа wc -c
.
Однако в данном конкретном случае можно использовать встроенное расширение параметра оболочки для получения значения длины переменной вообще без трубопровода:
val=${#line}
Расширение #
расширяется до:
Длина строки. Подставляется длина в символах значения параметра. Если параметр '*' или '@', то результат расширения не указывается. Если параметр не задан и установлено -u, то расширение будет неудачным.
Я думаю, что вы были очень близки.
Просто переходите в настройки => Программы запуска
, а затем нажмите на вкладку
.
Там вы увидите флажок, говорящий
автоматически запомнить запущенные приложения при выходе из
, просто снимите его.