Вероятно, вам следует использовать для этого оператор case
, а не if/then/else.
Неясно, что именно вы пытаетесь сделать, но, основываясь на моем лучшем -предположении, что это такое, следующее может сделать то, что вы хотите:
#!/bin/bash
for var in "$@"; do
case "$var" in
f1) cp file1 ~/ ;;
f2) cp file2 ~/ ;;
f3) cp file3 ~/ ;;
f4) cp file4 ~/ ;;
*) echo "Error: Unknown argument '$var'" ; exit 1 ;;
esac
done
Впрочем, я не вижу в этом смысла. cp
не так сложна в использовании, что для нее нужен специальный скрипт-оболочка, чтобы просто скопировать файл в ваш домашний каталог. ИМО, гораздо лучше научиться использовать утилиты оболочки и командной строки -, чем скрывать от себя работу даже простых команд.
Вы можете прочитать один или несколько из этих файлов:
/etc/issue
/etc/os-release
/usr/lib/os-release
Они должны быть доступны в большинстве, если не во всех, дистрибутивах (их возможное отсутствие также может быть использовано для идентификации дистрибутива ).
Вы можете найти более подробную информацию в ответе на Является ли «/etc/issue» общим для всех дистрибутивов Linux? .