Ваш скрипт корректен и получит желаемый результат, удаляйте только двойные апострофы после sed -i:
sed -i 's#ApiUrl = "[a-z:./]*"#ApiUrl = "'$API_URL'"#' $APP_CONSTANT_FILE
Однако я бы также изменил регулярное выражение по крайней мере на это, поскольку.(точка) зарезервирована как любой символ в регулярном выражении:
sed -i 's#ApiUrl = "[a-z:\./]*"#ApiUrl = "'$API_URL'"#' $APP_CONSTANT_FILE
Или даже для этого (чтобы взять любые символы между кавычками):
sed -i 's#ApiUrl = "[^"]*"#ApiUrl = "'$API_URL'"#' $APP_CONSTANT_FILE
Тест:
$ cat > developer9969.txt
namespace Core
{
public class AppConstant
{
public const string ApiUrl = "https://production.com/api";
}
}
API_URL='https://kubator.com/'
APP_CONSTANT_FILE='./developer9969.txt'
sed -i 's#ApiUrl = "[^"]*"#ApiUrl = "'$API_URL'"#' $APP_CONSTANT_FILE
$ cat $APP_CONSTANT_FILE
namespace Core
{
public class AppConstant
{
public const string ApiUrl = "https://kubator.com/";
}
}